mysql使用笔记
select distinct Code , Date(BeginTime) as AtDate
from Session
where DATE_SUB(CURDATE(), INTERVAL 1 MONTH) = date(BeginTime)
date()
返回时间中的日期
DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
当前日期减去1个月
distinct 去掉重复数据
------------------------------------------------------
show processlist 中的ID栏显示。
KILL [CONNECTION | QUERY] thread_id
每个与mysqld的连接都在一个独立的线程里运行,您可以使用SHOW PROCESSLIST语句查看哪些线程正在运行,并使用KILL thread_id语句终止一个线程。
------------------------------------------------------
select BeginTime , Count(distinct code)
from Session s1
where To_days(BeginTime) >= To_days('2011-01-14')
and To_days(BeginTime) <= To_days('2011-02-14')
and AppCode = 'StoneAge'
and code in
(
select distinct code
from Session s2
where To_days(s2.BeginTime) <= To_days(s1.BeginTime) - 1
and To_days(s2.BeginTime) >= To_days(s1.BeginTime) - 1
)
group by To_days(BeginTime)
To_days(s2.BeginTime)
返回日期的天数
update Card set expiration=date_add(bindDate , interval 1 year)
where expiration='0000-00-00'
date_add(bindDate , interval 1 year)
当前日期加1年
select * from role
where id between 2 and 3
查询两个数之间的数据,但包括ID为2和ID为3的数据
select TIME_TO_SEC(TIMEDIFF('2011-03-03 23:23:23' ,'2011-02-01 23:23:23'))
TIMEDIFF(expr,expr2)
TIMEDIFF() 返回起始时间 expr 和结束时间expr2 之间的时间。 expr 和expr2 为时间或 date-and-time 表达式,两个的类型必须一样。
mysql> SELECT TIMEDIFF('2000:01:01 00:00:00',
-> '2000:01:01 00:00:00.000001');
-> '-00:00:00.000001'
mysql> SELECT TIMEDIFF('1997-12-31 23:59:59.000001',
-> '1997-12-30 01:01:01.000002');
-> '46:58:57.999999'
TIME_TO_SEC(time)
返回已转化为秒的time参数。
mysql> SELECT TIME_TO_SEC('22:23:00');
-> 80580
mysql> SELECT TIME_TO_SEC('00:39:38');
-> 2378
周统计
select DATE_FORMAT(incomingTime,'%x %v') as weekCount , count(0) as dateCount , min(date(incomingTime)) as minDate , max(date(incomingTime)) as maxDate
from CallHistory WHERE uid <> '000.000' and date(incomingTime) <= '2011-09-04' and date(incomingTime) >= '2008-07-28'
GROUP BY weekCount
order by incomingTime
----下面是没有经过测试的--------------------------------------------------
* TIMESTAMP(expr) , TIMESTAMP(expr,expr2)
对于一个单参数,该函数将日期或日期时间表达式 expr 作为日期时间值返回.对于两个参数, 它将时间表达式 expr2 添加到日期或日期时间表达式 expr 中,将theresult作为日期时间值返回。
mysql> SELECT TIMESTAMP('2003-12-31');
-> '2003-12-31 00:00:00'
mysql> SELECT TIMESTAMP('2003-12-31 12:00:00','12:00:00');
-> '2004-01-01 00:00:00'
* TIMESTAMPADD(interval,int_expr,datetime_expr)
将整型表达式int_expr 添加到日期或日期时间表达式 datetime_expr中。 int_expr 的单位被时间间隔参数给定,该参数必须是以下值的其中一个: FRAC_SECOND、SECOND、 MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR。
可使用所显示的关键词指定Interval值,或使用SQL_TSI_前缀。例如, DAY或SQL_TSI_DAY 都是正确的。
mysql> SELECT TIMESTAMPADD(MINUTE,1,'2003-01-02');
&nb