文章目录
获取今天的日期
获取昨天的日期
获取明天的日期
总结
SQL 标准为我们定义了很多内置的处理函数,极大地方便了信息的获取和数据的处理。今天给大家介绍一下获取系统日期的内置函数,以及不同数据库中的扩展实现,包括:MySQL、Oracle、SQL Server、PostgreSQL 以及 SQLite 数据库。
获取今天的日期
SQL 标准定义了 CURRENT_DATE 函数,用于获取数据库系统的当前日期。例如:
– MySQL、PostgreSQL、SQLite
SELECT CURRENT_DATE AS today;
today |
---|
2020-10-14 |
– Oracle
SELECT CURRENT_DATE AS today
FROM dual;
TODAY |
---|
2020-10-14 08:22:55 |
– SQL Server
SELECT CAST(GETDATE() AS DATE) AS today;
today |
---|
2020-10-14 |
其中,Oracle 数据库中的 DATE 类型包含了日期和时间两部分信息;SQL Server 中的 GETDATE() 函数返回的是日期和时间信息,使用 CAST 函数转换为日期;SQLite 返回的结果类型为字符串。
除了 CURRENT_DATE 函数之外,有些数据库还实现了扩展的函数。例如,MySQL 中的 CURDATE() 和 CURRENT_DATE() 函数也可以返回当前日期:
– MySQL
SELECT CURDATE(), CURRENT_DATE();
CURDATE() | CURRENT_DATE() |
---|---|
2020-10-14 | 2020-10-14 |
Oracle 也可以使用 SYSDATE 函数获取当前日期,例如:
SELECT TRUNC(SYSDATE) AS today
FROM dual;
TODAY |
---|
2020-10-14 00:00:00 |
SYSDATE 函数同样会返回日期和时间两部分信息,使用 TRUNC 函数截断时间部分。
获取昨天的日期
基于当前日期减去一天,就可以获得昨天的日期。对于 MySQL,可以使用以下语句:
– MySQL
SELECT CURRENT_DATE - INTERVAL ‘1’ DAY AS yesterday;
yesterday |
---|
2020-10-13 |
除了直接使用 + 或者 - 进行加减运算之外,MySQL 还提供了 SUBDATE、ADDDATE、DATE_SUB、DATE_ADD 函数,具体可以参考 MySQL 常用日期时间函数。