上一篇
数据库函数中时间函数具体操作及用法详解疑问解答
- 数据库
- 2025-11-18
- 9
在数据库中,时间函数是非常有用的工具,可以帮助我们处理与时间相关的数据,以下是一些常见的时间函数及其用法:


获取当前时间
- 函数:CURRENT_TIMESTAMP()
- 用法:返回当前的日期和时间。
- 示例: SELECT CURRENT_TIMESTAMP();
获取当前日期
- 函数:CURRENT_DATE()
- 用法:返回当前的日期,不包含时间。
- 示例: SELECT CURRENT_DATE();
获取当前时间戳
- 函数:UNIX_TIMESTAMP()
- 用法:返回当前日期时间的Unix时间戳(自1970年1月1日以来的秒数)。
- 示例: SELECT UNIX_TIMESTAMP();
获取当前时间戳的日期部分
- 函数:FROM_UNIXTIME()
- 用法:将Unix时间戳转换为日期时间格式。
- 示例: SELECT FROM_UNIXTIME(UNIX_TIMESTAMP());
日期格式化
- 函数:DATE_FORMAT()
- 用法:将日期时间值格式化为指定的格式。
- 示例: SELECT DATE_FORMAT(NOW(), '%Y%m%d %H:%i:%s');
日期加减
- 函数:DATE_ADD() 和 DATE_SUB()
- 用法:对日期进行加减操作。
- 示例: SELECT DATE_ADD(NOW(), INTERVAL 1 DAY); SELECT DATE_SUB(NOW(), INTERVAL 1 DAY);
日期间隔计算
- 函数:TIMESTAMPDIFF()
- 用法:计算两个日期之间的间隔。
- 示例: SELECT TIMESTAMPDIFF(MONTH, '20210101', NOW());
日期比较
- 函数:CURDATE(), CURTIME(), NOW()
- 用法:比较日期和时间。
- 示例: SELECT CURDATE() > '20210101';
日期提取
- 函数:YEAR(), MONTH(), DAY()
- 用法:从日期中提取年、月、日。
- 示例: SELECT YEAR(NOW()), MONTH(NOW()), DAY(NOW());
日期转换
- 函数:STR_TO_DATE()
- 用法:将字符串转换为日期格式。
- 示例: SELECT STR_TO_DATE('20210101', '%Y%m%d');
以下是一个表格,归纳了上述时间函数的用法:
| 函数名称 | 描述 | 示例 |
|---|---|---|
| CURRENT_TIMESTAMP() | 返回当前日期和时间 | SELECT CURRENT_TIMESTAMP(); |
| CURRENT_DATE() | 返回当前日期,不包含时间 | SELECT CURRENT_DATE(); |
| UNIX_TIMESTAMP() | 返回当前日期时间的Unix时间戳(自1970年1月1日以来的秒数) | SELECT UNIX_TIMESTAMP(); |
| FROM_UNIXTIME() | 将Unix时间戳转换为日期时间格式 | SELECT FROM_UNIXTIME(UNIX_TIMESTAMP()); |
| DATE_FORMAT() | 将日期时间值格式化为指定的格式 | SELECT DATE_FORMAT(NOW(), ‘%Y%m%d %H:%i:%s’); |
| DATE_ADD() | 对日期进行加操作 | SELECT DATE_ADD(NOW(), INTERVAL 1 DAY); |
| DATE_SUB() | 对日期进行减操作 | SELECT DATE_SUB(NOW(), INTERVAL 1 DAY); |
| TIMESTAMPDIFF() | 计算两个日期之间的间隔 | SELECT TIMESTAMPDIFF(MONTH, ‘20210101’, NOW()); |
| CURDATE() | 返回当前日期,不包含时间 | SELECT CURDATE() > ‘20210101’; |
| CURTIME() | 返回当前时间,不包含日期 | SELECT CURTIME(); |
| NOW() | 返回当前的日期和时间 | SELECT NOW(); |
| YEAR() | 从日期中提取年 | SELECT YEAR(NOW()); |
| MONTH() | 从日期中提取月 | SELECT MONTH(NOW()); |
| DAY() | 从日期中提取日 | SELECT DAY(NOW()); |
| STR_TO_DATE() | 将字符串转换为日期格式 | SELECT STR_TO_DATE(‘20210101’, ‘%Y%m%d’); |
FAQs
Q1:如何获取当前日期和时间?
A1:使用CURRENT_TIMESTAMP()函数可以获取当前日期和时间。
Q2:如何将日期格式化为指定的格式?
A2:使用DATE_FORMAT()函数可以将日期时间值格式化为指定的格式。DATE_FORMAT(NOW(), '%Y%m%d %H:%i:%s')将返回当前的日期和时间,格式为“年月日 时:分:秒”。
