1.DATE_SUB(date,INTERVAL expr unit)
返回date减去一个时间段后的日期,DATE_SUB()返回的是格式化后的时间:yyyy-MM-dd
例子:查询小于当前时间一个月的数据
SELECT * from v2_u_recharge_order WHERE create_at < DATE_SUB(CURDATE(),INTERVAL 1 MONTH)
MySQL中的日期间隔类型如下表所示:
| 类型(type值) | 含义 | expr表达式的形式 |
|---|---|---|
| YEAR | 年 | YY |
| MONTH | 月 | MM |
| DAY | 日 | DD |
| HOUR | 时 | hh |
| MINUTE | 分 | mm |
| SECOND | 秒 | ss |
| YEAR_MONTH | 年和月 | YY和MM之间用任意符号隔开 |
| DAY_HOUR | 日和小时 | DD和hh之间用任意符号隔开 |
| DAY_MINUTE | 日和分钟 | DD和mm之间用任意符号隔开 |
| DAY_SECOND | 日和秒钟 | DD和ss之间用任意符号隔开 |
| HOUR_MINUTE | 时和分 | hh和mm之间用任意符号隔开 |
| HOUR_SECOND | 时和秒 | hh和ss之间用任意符号隔开 |
| MINUTE_SECOND | 分和秒 | mm和ss之间用任意符号隔开 |
2.DATE_ADD(date,INTERVAL expr unit)
同上返回date加一个时间段后的日期
例子:对某个日期加上几天几小时几分钟几秒钟
SELECT * from v2_u_recharge_order WHERE create_at < date_add('2019-09-09 23:59:59',INTERVAL '2 2:1:1' DAY_SECOND);
3.时间戳与时间的转换
UNIX_TIMESTAMP() 时间转时间戳
FROM_UNIXTIME(unix_timestamp) 时间戳转时间
4.DATEDIFF() 函数返回两个日期之间的天数。
例子:查询当天
传统:
SELECT * FROM v2_u_recharge_order WHERE DATE_FORMAT(create_at,'%Y-%m-%d') = date_format(now(),'%Y-%m-%d')");
DATEDIFF()写法:
SELECT * FROM `t` WHERE DATEDIFF(create_at,NOW()) =0;
注:返回当天时间的mysql函数有CURDATE()、CURRENT_DATE()、CURRENT_DATE、NOW()几种;其中NOW()获取的日期格式为0000-00-00 00:00:00的时间;CURDATE()、CURRENT_DATE()、CURRENT_DATE是获取日期格式为0000-00-00的时间,所以返回的时间无时分秒;
本文详细介绍了MySQL中日期操作函数DATE_SUB、DATE_ADD及时间戳转换方法,展示了如何使用这些函数进行日期减、加运算,以及时间与时间戳之间的相互转换。同时,文章提供了DATEDIFF函数的使用示例,用于计算两个日期之间的天数差。
1154

被折叠的 条评论
为什么被折叠?



