

新闻资讯
技术学院MySQL提供NOW()、CURDATE()、CURTIME()获取当前时间,支持YEAR()、MONTH()、DAY()等函数提取日期部分,DATE_FORMAT()格式化输出,DATE_ADD()和DATE_SUB()进行日期增减,DATEDIFF()计算日期差,STR_TO_DATE()实现字符串与日期转换,灵活应用于插入记录、统计查询与类型转换场景。
在MySQL数据库中,日期和时间的处理是日常开发中非常常见的需求。无论是记录用户注册时间、订单生成时间,还是进行数据统计分析,都离不开对时间字段的操作。MySQL提供了丰富的内置函数来帮助我们灵活地处理日期和时间。
最基础的操作就是获取当前系统的时间。MySQL提供了几个常用的函数:
例如,插入一条记录时自动记录当前时间:
INSERT INTO orders (product, create_time) VALUES ('手机', NOW());有时候我们需要从一个日期时间字段中提取年、月、日等部分,或者将日期转换成特定格式展示。
比如统计某个月的订单数量:
SELECT COUNT(*) FROM orders WHERE YEAR(create_t
ime) = 2025 AND MONTH(create_time) = 5;或格式化显示时间:
SELECT DATE_FORMAT(create_time, '%Y年%m月%d日 %H:%i') AS formatted_time FROM orders;在实际业务中,经常需要对日期进行加减操作,比如查询7天前的记录、计算到期时间等。
示例:查询过去7天内的订单
SELECT * FROM orders WHERE create_time >= DATE_SUB(NOW(), INTERVAL 7 DAY);计算两个时间相差多少天:
SELECT DATEDIFF('2025-06-01', '2025-05-01') AS diff_days;有时时间以字符串形式存储,或者需要将日期转为字符串参与拼接,这时就需要类型转换函数。
例如将 '2025/05/20' 转为标准日期:
SELECT STR_TO_DATE('2025/05/20', '%Y/%m/%d');注意格式符要与字符串匹配,否则返回 NULL。
基本上就这些常用操作。掌握这些函数后,处理时间相关的查询和逻辑会更加得心应手。关键是理解每个函数的作用和参数格式,避免因格式错误导致结果异常。