获取当前日期和时间的函数
NOW():返回当前的日期和时间,例如
SELECT NOW()
--
2025-01-10 16:43:40
CURRENT_DATE():返回当前的日期
SELECT CURRENT_DATE()
--
2025-01-10
CURRENT_TIME():返回当前的时间
CURRENT_DATE():返回当前的日期
```sql
SELECT CURRENT_TIME()
--
16:45:00
SYSDATE():返回服务器的当前日期和时间,与NOW()的区别在于SYSDATE()在执行过程中如果经过了一定时间,返回的时间会变化,而NOW()返回的是执行时刻的时间。
SELECT SYSDATE()
--
2025-01-10 16:45:54
日期格式化函数
DATE_FORMAT()函数可以将日期时间格式化为指定的字符串格式
SELECT DATE_FORMAT('2025-01-10 22:37:45', '%Y-%m-%d %H:%i:%s')
--
2025-01-10 22:37:45
格式化选项包括:%Y 表示四位年份,%m 表示月份,%d 表示日,%H 表示小时(24小时制),%i 表示分钟,%s 表示秒等。
字符串日期转换函数
STR_TO_DATE()函数可以将字符串转换为日期。
SELECT STR_TO_DATE('2025-01-10 22:37:45', '%Y-%m-%d %H:%i:%s')
--
2025-01-10 22:37:45
提取年月日时分秒
SELECT YEAR('2021-01-06 07:08:08') union ALL
SELECT MONTH('2021-01-06 07:08:08') union ALL
SELECT DAY('2021-01-06 07:08:08') union ALL
SELECT HOUR('2021-01-06 07:08:08') union ALL
SELECT MINUTE('2021-01-06 07:08:08') union ALL
SELECT SECOND('2021-01-06 07:08:08')
--
2021
1
6
7
8
8
日期间隔计算函数
日期加减计算
DATE_ADD()和DATE_SUB()函数可以用来增加或减少日期时间。
SELECT DATE_ADD(NOW(), INTERVAL 2 DAY)
--
2025-01-12 16:49:50
--
SELECT DATE_ADD(NOW(), INTERVAL 2 MINUTE)
--
2025-01-10 16:52:26
--
SELECT DATE_ADD(NOW(), INTERVAL 2 HOUR)
--
2025-01-10 18:50:54
--
SELECT DATE_SUB(NOW(), INTERVAL 2 MONTH)
--
2024-11-10 16:51:32
日期时间差额计算
DATEDIFF()函数计算两个日期之间的天数差异
SELECT DATEDIFF('2025-01-06', '2025-01-02')
--
4
TIMEDIFF()函数计算时间差异
SELECT TIMEDIFF('2025-01-06 08:08:08', '2025-01-06 09:00:00')
--
-00:51:52
TIMESTAMPDIFF()自定义单位计算时间差
秒:
SELECT TIMESTAMPDIFF(SECOND,'2025-01-06 07:08:08', '2025-01-06 09:00:00')
--
6712
分钟:
SELECT TIMESTAMPDIFF(MINUTE,'2025-01-06 07:08:08', '2025-01-06 09:00:00')
--
11
小时:
SELECT TIMESTAMPDIFF(HOUR,'2025-01-06 07:08:08', '2025-01-06 09:00:00')
--
1
其他单位如天、月、年等都可自定义
时间戳
SELECT UNIX_TIMESTAMP('2021-01-06 07:08:08.11')*1000
---
1609888088110