📅  最后修改于: 2023-12-03 14:47:38.399000             🧑  作者: Mango
在 SQL 中,我们常常需要使用日期和时间来进行数据操作和分析。SQL 提供了一些内置函数和特殊语法,可用于自动生成日期和时间,以减轻程序员的工作负担。本文将介绍几种常见的 SQL 自动日期相关技巧和函数。
要获取当前的日期和时间,可以使用 CURRENT_TIMESTAMP
函数。该函数返回当前的日期和时间,并且可以与其他日期和时间函数一起使用。
SELECT CURRENT_TIMESTAMP AS current_datetime;
结果示例:
| current_datetime | |-----------------------| | 2022-01-12 15:30:25 |
为了使日期和时间以不同的格式显示,我们可以使用 DATE_FORMAT
函数。该函数接受两个参数:待格式化的日期/时间值和格式字符串。
SELECT DATE_FORMAT(CURRENT_TIMESTAMP, '%Y-%m-%d') AS formatted_date;
结果示例:
| formatted_date | |-----------------| | 2022-01-12 |
更多的格式化选项可以从 MySQL 官方文档中找到:https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_date-format
在 SQL 中,我们可以通过使用 DATE_ADD
和 DATE_SUB
函数来添加或减少日期和时间。这些函数接受三个参数:待修改的日期/时间值、需要修改的部分和修改的数量。
SELECT DATE_ADD(CURRENT_TIMESTAMP, INTERVAL 1 DAY) AS tomorrow;
结果示例:
| tomorrow | |---------------------| | 2022-01-13 15:30:25 |
SELECT DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 1 HOUR) AS one_hour_ago;
结果示例:
| one_hour_ago | |---------------------| | 2022-01-12 14:30:25 |
如果我们只想获取日期或时间的一部分,可以使用 DATE
、TIME
和 EXTRACT
函数。
SELECT DATE(CURRENT_TIMESTAMP) AS current_date;
结果示例:
| current_date | |----------------| | 2022-01-12 |
SELECT TIME(CURRENT_TIMESTAMP) AS current_time;
结果示例:
| current_time | |----------------| | 15:30:25 |
SELECT EXTRACT(MONTH FROM CURRENT_TIMESTAMP) AS current_month;
结果示例:
| current_month | |----------------| | 1 |
有时我们需要计算两个日期或时间之间的差异,可以使用 DATEDIFF
和 TIMESTAMPDIFF
函数。
SELECT DATEDIFF('2022-01-10', '2022-01-05') AS date_diff;
结果示例:
| date_diff | |------------| | 5 |
SELECT TIMESTAMPDIFF(MINUTE, '2022-01-12 15:00:00', '2022-01-12 15:30:00') AS time_diff;
结果示例:
| time_diff | |------------| | 30 |
通过使用 SQL 的自动日期函数和语法,我们可以轻松处理日期和时间的操作和计算。在数据分析、报表生成等应用中,这些功能非常有用。以上仅是一些常见的用法,SQL 还提供了更多的日期和时间函数,可根据需求进行更深入的学习和应用。
希望本文对你有所帮助!请享受 SQL 自动日期的便利性,并从中受益!