📂MySQL
🔖MySQL
2022-05-21 19:32阅读: 101评论: 0推荐: 0

MySQL 时间函数

1. 基础用法

1.1 NOW()
SELECT NOW();
# 输出 2022-05-14 13:26:49
1.2 CURDATE()
SELECT CURDATE();
# 输出 2022-05-14
1.3 CURTIME()
SELECT CURTIME();
# 输出 13:28:39
1.4 DATE()

提取时间的日期部分

SELECT DATE(NOW());
# 输出 2022-05-14
1.5 EXTRACT()

返回时间的指定部分的值

SELECT EXTRACT(YEAR FROM NOW()), EXTRACT(MONTH FROM NOW()), EXTRACT(DAY FROM NOW());
# 输出 2022 5 14
1.6 DATE_ADD、DATE_SUB

在指定时间上增加/减少指定日期,具体类型有year,month,day等

SELECT DATE_ADD(NOW(), 1);
# 输出 2022-05-15 14:05:01

SELECT DATE_SUB(NOW(), INTERVAL 1 DAY);
# 输出 2022-05-13 14:05:30
1.7 ADDDATE、SUBDATE
SELECT ADDDATE(NOW(), INTERVAL 1 DAY);
# 输出 2022-05-15 14:05:01

SELECT SUBDATE(NOW(), 1);
# 输出 2022-05-13 14:05:30
1.8 DATEDIFF

DATEDIFF计算两个日期之间间隔的天数,(时分秒不参与计算)

SELECT DATEDIFF('2022-05-05', '2022-05-01');
# 输出 4
1.9 TIMESTAMPDIFF

计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数

SELECT TIMESTAMPDIFF(HOUR, '2022-05-01 00:00:00', '2022-05-01 23:59:59');
# 输出 23

SELECT TIMESTAMPDIFF(MINUTE, '2022-05-01 00:00:00', '2022-05-01 00:20:00');
# 输出 20

SELECT TIMESTAMPDIFF(DAY, '2022-05-01 00:00:00', '2022-05-02 23:59:59');
# 输出 1

SELECT TIMESTAMPDIFF(MONTH, '2022-05-01 00:00:00', '2022-06-02 23:59:59');
# 输出 1
1.10 DATE_FORMAT
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d');
# 输出 2022-05-14

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %T');
# 输出 2022-05-14 13:45:14

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %T.%f');
# 输出 2022-05-14 13:47:00.000000

# 周的天 (0=星期日, 6=星期六)
SELECT DATE_FORMAT(NOW(), '%w');
1.11 STR_TO_DATE
SELECT STR_TO_DATE('2022-05-14 13:50:35', '%Y-%m-%d %H:%i:%s');
SELECT STR_TO_DATE('2022-05-14 13:50:35', '%Y-%m-%d %T');
# 输出 2022-05-14 13:50:35

SELECT STR_TO_DATE('2022-05-14 13:50:35', '%Y-%m-%d');
# 输出 2022-05-14
1.12 LAST_DAY
# 获取当月最后一天
SELECT LAST_DAY(NOW());
# 输出 2022-05-31

2. 组合用法

2.1 获取当月最后一天
SELECT LAST_DAY(NOW());
# 输出 2022-05-31
2.2 获取当月第一天
# 当前时间 2022-05-14 14:08:46
SELECT SUBDATE(CURDATE(), DAY(CURDATE()) - 1);
SELECT ADDDATE(LAST_DAY(SUBDATE(NOW(), INTERVAL 1 MONTH)), 1);
# 输出 2022-05-01
2.3 获取当月第几日
# 当前时间 2022-05-14 14:08:46
SELECT DAY(CURDATE());
# 输出 14
2.4 获取下个月第一天
# 当前时间 2022-05-14 14:08:46
SELECT ADDDATE(LAST_DAY(NOW()), 1);
# 输出 2022-06-01
2.5 获取下个月最后一天
# 当前时间 2022-05-14 14:08:46
SELECT LAST_DAY(ADDDATE(LAST_DAY(NOW()), 1));
# 输出 2022-06-30
2.6 获取上个月第一天
# 当前时间 2022-05-14 14:08:46
SELECT ADDDATE(LAST_DAY(SUBDATE(NOW(), INTERVAL 2 MONTH)), 1);
# 输出 2022-04-30
2.7 获取上个月最后一天
# 当前时间 2022-05-14 14:08:46
SELECT LAST_DAY(SUBDATE(NOW(), INTERVAL 1 MONTH));
# 输出 2022-04-30
2.8 获取当月的天数
# 当前时间 2022-05-14 14:08:46
SELECT DAY(LAST_DAY(NOW()));
# 输出 31
2.9 获取上个月的天数
# 当前时间 2022-05-14 14:08:46
SELECT DAY(LAST_DAY(SUBDATE(NOW(), INTERVAL 1 MONTH)));
# 输出 30
2.10 获取下个月的天数
# 当前时间 2022-05-14 14:08:46
SELECT DAY(LAST_DAY(ADDDATE(LAST_DAY(NOW()), 1)));
# 输出 30
2.11 当日时间范围
SELECT STR_TO_DATE('2022-05-01', '%Y-%m-%d %H:%i:%s');
# 输出 2022-05-01 00:00:00

SELECT STR_TO_DATE(CONCAT('2022-05-01', '23:59:59'), '%Y-%m-%d %H:%i:%s');
# 输出 2022-05-01 23:59:59

SELECT STR_TO_DATE(CURDATE(), '%Y-%m-%d %H:%i:%s');
# 输出 2022-05-14 00:00:00

SELECT STR_TO_DATE(CONCAT(CURDATE(), '23:59:59'), '%Y-%m-%d %H:%i:%s');
# 输出 2022-05-14 23:59:59

本文作者:逢生博客

本文链接:https://www.cnblogs.com/wufengsheng/p/16295810.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   逢生博客  阅读(101)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 晚安 顏人中
  2. 2 出山 花粥 / 王胜娚
  3. 3 我们俩 郭顶
  4. 4 日落大道 梁博
  5. 5 像鱼 王贰浪
  6. 6 把回忆拼好给你 王贰浪
  7. 7 时光背面的我 刘至佳 / 韩瞳
  8. 8 愿你余生漫长 王贰浪
  9. 9 追寻你 王天戈 / 川青
  10. 10 夜空中最亮的星 逃跑计划
  11. 11 孤勇者 陈奕迅
  12. 12 不为谁而作的歌 林俊杰
  13. 13 消愁 毛不易
  14. 14 这一生关于你的风景 隔壁老樊
出山 - 花粥 / 王胜娚
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.