在mysql中处理时间问题

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
#注意:今天是周二。

week

在sql中的date(), week(), month()函数都是常用函数。如果想以周为周期来分析数据的,直接用week函数将日期转换一下。可能有些人会忘记week函数,其实这个函数很实用。
mysql中的日期和时间函数非常之多,大家可以在网上找一找。
###参考文章:
MySql计算两个日期的时间差函数
w3cschool中的sql文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值