MySQL:一文带你掌握数据库日期时间函数及用法

06-01 1177阅读

MySQL作为一个开源的关系型数据库,在很多互联网大厂都有使用。本文主要介绍MySQL数据库中一些日期时间命令的用法。

1、MySQL中的日期时间函数

1)CURDATE() 和 CURTIME():分别返回当前日期和当前时间。常用于获取系统当前日期和时间。

MySQL:一文带你掌握数据库日期时间函数及用法

欢迎关注工 众号:ItBeeCoder,查看更多高质量技术文章

2)NOW():返回当前日期和时间的组合值,格式:

YYYY-MM-DD HH:MM:SS

,常用于记录事件发生的具体时间。

3)DATE() 和 TIME():分别提取日期和时间部分。例如,DATE(‘2023-10-05 14:30:00’)返回 2023-10-05,而 TIME(‘2023-10-05 14:30:00’) 返回 14:30:00。

4)YEAR()、MONTH() 和 DAY():分别提取日期中的年份、月份和日。

MySQL:一文带你掌握数据库日期时间函数及用法

5)STR_TO_DATE() 和 DATE_FORMAT():用于将字符串转换为日期时间格式,或将日期时间格式化为字符串。

例如:

STR_TO_DATE('2023-10-05', '%Y-%m-%d')

将字符串转换为日期,而 DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') 将当前日期时间格式化为指定的字符串格式。

6)SYSDATE()

返回当前日期时间(与 NOW() 类似,但SYSDATE()在函数执行时动态获取值)。

SELECT SYSDATE();

MySQL:一文带你掌握数据库日期时间函数及用法

对于计算机技术感兴趣的读者,可以加入下裙,和更多行业爱好者分享、交流最新的技术。

MySQL:一文带你掌握数据库日期时间函数及用法

7)EXTRACT(unit FROM date)

按指定单位提取日期时间部分(如 YEAR, MONTH, DAY, HOUR 等)。

SELECT EXTRACT(YEAR_MONTH FROM '2024-10-25'); 

MySQL:一文带你掌握数据库日期时间函数及用法

欢迎关注工 众号:ItBeeCoder,查看更多高质量技术文章

2、日期时间计算函数

1)DATE_ADD

在MySQL中,DATE_ADD函数用于向指定的日期或时间值添加一个特定的时间间隔,并返回新的日期或时间值。用法为:

DATE_ADD(date, INTERVAL expr unit)

其中:

date表示要操作的日期或时间值,是一个日期、时间或日期时间类型的表达式;

INTERVAL:关键字,用于指定要添加的时间间隔;

expr:时间间隔的数量,可以是一个整数或表达式;

unit:表示时间间隔的单位,常用的有:

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:天和分钟

2)DATE_ADD 使用示例

例1:向当前日期添加7天

SELECT DATE_ADD(CURDATE(), INTERVAL 7 DAY)

假设当前日期是2023-10-05,上述查询将返回2023-10-12

例2:向指定日期添加1个月

SELECT DATE_ADD('2023-10-05', INTERVAL 1 MONTH)

上述查询将返回2023-11-05

例3:向当前时间添加3小时

SELECT DATE_ADD(CURTIME(), INTERVAL 3 HOUR)

假设当前时间是15:10:00,上述查询将返回18:10:00

例4:向指定日期时间添加1年和2个月

SELECT DATE_ADD('2023-10-05 14:30:00', INTERVAL 1 YEAR_MONTH)

MySQL:一文带你掌握数据库日期时间函数及用法

3)DATE_SUB函数的基本语法

在MySQL中,DATE_SUB函数与DATE_ADD函数相对应,用于从指定的日期或时间值中减去一个特定的时间间隔,并返回新的日期或时间值。用法为:

DATE_SUB(date, INTERVAL expr unit)

参数和DATE_ADD 的参数含义类似。

4)DATE_SUB使用示例

例1:从当前日期减去7天

SELECT DATE_SUB(CURDATE(), INTERVAL 7 DAY);

MySQL:一文带你掌握数据库日期时间函数及用法

例2:从指定日期减去1个月

SELECT DATE_SUB('2024-10-05', INTERVAL 1 MONTH);

MySQL:一文带你掌握数据库日期时间函数及用法

例3:从当前时间减去3小时

SELECT DATE_SUB(CURTIME(), INTERVAL 3 HOUR);

MySQL:一文带你掌握数据库日期时间函数及用法

例4:从指定日期时间减去1年2个月

SELECT DATE_SUB('2024-10-05 14:30:00', INTERVAL 1 YEAR_MONTH);

上述查询将返回2023-08-05 14:30:00。

5)DATEDIFF(date1, date2)

计算两个日期之间的天数差(date1 - date2)。

SELECT DATEDIFF('2023-10-25', '2023-10-20'); -- 5

欢迎关注工 众号:ItBeeCoder,查看更多高质量技术文章

6)TIMEDIFF(time1, time2)

计算两个时间的差值(格式:HH:MM:SS)。

SELECT TIMEDIFF('14:30:00', '12:15:00'); -- 02:15:00

7)TIMESTAMPDIFF(unit, start, end)

按指定单位(如 YEAR, MONTH, DAY, HOUR)计算时间差。

SELECT TIMESTAMPDIFF(YEAR, '2000-05-20', '2023-10-25'); -- 23

3、日期时间格式化

1)DATE_FORMAT(date, format)

将日期时间按指定格式转换为字符串。

欢迎关注工 众号:ItBeeCoder,查看更多高质量技术文章

常用格式符:

- %Y:四位年份(2023)
- %y:两位年份(23)
- %m:两位月份(01-12)
- %d:两位日期(01-31)
- %H:24小时制小时(00-23)
- %i:分钟(00-59)
- %s:秒(00-59)
- %W:星期名(Wednesday)
- %M:月份名(October)
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); 

输出为:2025-02-16 15:43:56

2)STR_TO_DATE(str, format)

将字符串按指定格式转换为日期时间。

SELECT STR_TO_DATE('25-10-2023', '%d-%m-%Y'); 

输出为:2025-02-16

4、日期时间转换

1、UNIX_TIMESTAMP([date])

将日期时间转换为 UNIX 时间戳(从 1970-01-01 开始的秒数)。

SELECT UNIX_TIMESTAMP('2023-10-25 14:30:45'); 

输出:1698251445

2、FROM_UNIXTIME(unix_timestamp[, format])

将 UNIX 时间戳转换为日期时间,可选格式化。

SELECT FROM_UNIXTIME(1698251445); 

输出:2023-10-25 14:30:45


欢迎关注工 众号:ItBeeCoder,查看更多高质量技术文章

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码