MySql有很多函数可以处理日期和时间,提高工作效率。
注意,尽量使用标准格式的日期,如‘2018-01-01’, 或者‘2018-01-01 00:00:00’
TIMESTAMPDIFF函数
第一种:TIMESTAMPDIFF函数,需要传入三个参数,第一个是比较的类型,可以比较FRAC_SECOND、SECOND、 MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR几种类型,第二个和第三个参数是待比较的两个时间,比较是后一个时间减前一个时间,具体用法如下:
SELECT TIMESTAMPDIFF(day,'2000-02-28','2000-03-01');#2000年是闰年,结果为2天。
SELECT TIMESTAMPDIFF(day,'2018-02-28','2018-03-01');#2018年是平年, 结果为1天
DATEDIFF函数
第二种方法: DATEDIFF函数,就传入两个日期函数,比较的DAY天数,第一个参数减去第二个参数的天数值,这里的两个参数的顺序和上面一个函数是相反的。具体用法如下:
SELECT DATEDIFF('2018-03-27','2018-02-27');#结果为28天
DATE_ADD函数
该函数可以在日期数据上增加或减少一定的时间间隔。
DATE_ADD(date,INTERVAL expr type)
其中,type可以是:
MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH
示例:
select date_add('2000-02-28', interval 1 day);#结果为:'2000-02-29'
select date_add('2000-02-28', interval -1 day);#结果为:'2000-02-27'
其他函数
date(), time():分别返回日期部分、时间部分。
now():返回当前日期和时间。
dayofweek():返回一周中第几天,注意周日是第1天,周一是第2天,依此类推。
year(), month(), day(), hour(), minute(), second():返回年份、月份、等。
示例:
select now(), dayofweek(now()), date(now()), time(now()), year(now()), month(now()), day(now())
#结果:2018-03-27 18:24:59, 3, 2018-03-27, 18:24:59, 2018, 3, 27
#注意:今天是周二。
mysql中的日期和时间函数非常之多,大家可以在网上找一找。