📅  最后修改于: 2023-12-03 14:47:40.618000             🧑  作者: Mango
在 SQL 数据库系统中,日期和时间的处理是一个重要的方面。SQL 提供了一些内置的日期和时间函数以及特定的格式化选项,用于在数据库中处理日期和时间数据。
SQL 数据库系统通常提供以下几种日期和时间数据类型:
DATE
:表示日期,存储格式通常为 YYYY-MM-DD
,如 '2021-01-01'。TIME
:表示时间,存储格式通常为 HH:MM:SS
,如 '12:30:00'。DATETIME
或 TIMESTAMP
:表示日期和时间的组合,存储格式通常为 YYYY-MM-DD HH:MM:SS
,如 '2021-01-01 12:30:00'。INTERVAL
:表示时间间隔,如 3 天、4 小时等。SQL 提供了一些日期和时间函数,用于对日期和时间进行计算和格式化。以下是一些常用的函数:
NOW()
或 SYSDATE()
返回当前日期和时间。
示例:
SELECT NOW(); -- 返回当前日期和时间
DATE_FORMAT()
用于将日期和时间按照指定的格式进行格式化。
示例:
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d'); -- 返回当前日期(仅年月日部分),如 '2021-01-01'
SELECT DATE_FORMAT(NOW(), '%H:%i:%s'); -- 返回当前时间(仅时分秒部分),如 '12:30:00'
DATE_ADD()
和 DATE_SUB()
用于在日期和时间上进行加减操作。
示例:
SELECT DATE_ADD(NOW(), INTERVAL 1 DAY); -- 返回当前日期加一天的结果
SELECT DATE_SUB(NOW(), INTERVAL 1 HOUR); -- 返回当前时间减一小时的结果
DATEDIFF()
用于计算两个日期之间的天数差。
示例:
SELECT DATEDIFF('2021-01-01', '2020-12-01'); -- 返回两个日期之间的天数差,如 31
DAY()
, MONTH()
, YEAR()
用于提取日期中的天、月、年。
示例:
SELECT DAY('2021-01-01'); -- 返回日期中的天,如 1
SELECT MONTH('2021-01-01'); -- 返回日期中的月,如 1
SELECT YEAR('2021-01-01'); -- 返回日期中的年,如 2021
SQL 数据库系统通常使用一些预定义的日期格式化选项,用于将日期和时间格式化为字符串。以下是一些常用的格式化选项:
%Y
:用于表示年份(四位数)。%m
:用于表示月份(两位数)。%d
:用于表示天(两位数)。%H
:用于表示小时(24 小时制,两位数)。%i
:用于表示分钟(两位数)。%s
:用于表示秒(两位数)。示例:
SELECT DATE_FORMAT('2021-01-01', '%Y/%m/%d'); -- 将日期格式化为 '2021/01/01'
SELECT DATE_FORMAT('2021-01-01 12:30:00', '%H:%i:%s'); -- 将时间格式化为 '12:30:00'
SQL 中的日期格式和日期函数是处理日期和时间数据的重要工具。掌握这些知识可以帮助程序员进行更加灵活和精确的日期和时间操作。
注意:以上示例仅供参考,具体的日期格式和函数可能因数据库系统而有所区别,请根据实际情况进行使用和调整。