数据库日期运算函数及Type的期望值
函数DATE_ADD()
和DATE_SUB()
前言:
- 在MySQL数据库中,我们经常使用日期函数,基本上创建一个数据库(非测试),我们对日期的使用都是必不可少的,下面我就说一下MySQL数据库中的日期运算函数以及函数中的Type和它对应的期望值。
知识点:
-
MySQL数据库中的
NOW()
函数,返回当前系统设置的日期和时间,所以使用这个函数时,若是计算机的时钟不准确的话,那么这个函数返回的时间也是错误的。SELECT NOW();
-
当然MySQL中也有返回当前日期的函数,如:
CURDATE()
和CURRENT_DATE()
。
日期运算函数
MySQL提供给我们的日期运算函数有两个:
-
DATE_ADD()
函数。使用格式如下:
DATE_ADD(date,INTERVAL,expression type)
-
DATE_SUB()
函数。使用格式如下:
DATE_SUB(date,INTERVAL,expression type)
其中,date 参数是合法的日期表达式,INTERVAL是关键字,expression 参数是您希望添加的时间间隔 。
演示一下用法(以减少天数为例):
//用DATE_SUB减少天数,系统时间是:2018年12月1日
//减少12天
SELECT DATE_SUB(NOW(),INTERVAL 12 DAY);
可以看到我减少的是天数,所以使用的是type
值是DAY
,下面我就来说一下type其他可能的取值。
type和对应的期望值
Type | 期望的值(字符串形式) | 例子 |
---|---|---|
microsecond | microseconds | ‘10’ |
second | seconds | ‘10’ |
minute | minutes | ‘10’ |
day | days | ‘10’ |
week | weeks | ‘10’ |
month | months | ‘10’ |
quarter | quarters | ‘2’ |
year | years | ‘10’ |
second_microsecond | seconds.microseconds | ‘10.10’ |
minute_microsecond | minutes.microseconds | ‘10.10’ |
minute_second | minutes:seconds | ‘10:10’ |
hour_microsecond | hours.microseconds | ‘10.10’ |
hour_second | hours:minutes:seconds | ‘10:10:10’ |
hour_minute | hours:minutes | ‘10:10’ |
day_microsecond | days.microseconds | ‘10.10’ |
day_second | days hours:minutes:seconds | ‘10 10:10:10’ |
day_minute | days hours:minutes | ‘10 10:10’ |
day_hour | days hours | ‘10 10’ |
year_month | years-months | ‘1000-10’ |
从MySQL3.23版开始,MySQL就支持使用加号(+)和减号(-)来对日期进行加减操作。
//对日期使用减号操作,当前系统日期为2018年12月1日
SELECT NOW() - INTERVAL 12 DAY;
其实,在关键字INTERVAL
后面的值可以是任何表达式,只要他返回的结果符合上面表中所列格式的字符串。