SQL 日期函数如何获取当前时间?

MySQL用NOW()、CURDATE()、CURTIME();2. PostgreSQL用NOW()、CURRENT_TIMESTAMP等;3. SQL Server用GETDATE()、SYSDATETIME();4. Oracle用SYSDATE、CURRENT_TIMESTAMP。

在 SQL 中获取当前时间,不同数据库系统有不同的函数。以下是主流数据库中常用的获取当前时间的方法。

MySQL 获取当前时间

在 MySQL 中,常用以下几种函数:

  • NOW():返回当前日期和时间,格式为 'YYYY-MM-DD HH:MM:SS'
  • CURDATE():只返回当前日期
  • CURTIME():只返回当前时间
示例:
SELECT NOW();        -- 输出:2025-04-05 10:30:45
SELECT CURDATE();    -- 输出:2025-04-05
SELECT CURTIME();    -- 输出:10:30:45

PostgreSQL 获取当前时间

PostgreSQL 提供了多个时间函数:

  • NOW():返回当前时间戳
  • CURRENT_TIMESTAMP:与 NOW() 类似
  • CURRENT_DATE:返回当前日期
  • CURRENT_TIME:返回当前时间
示例:
SELECT NOW();                    -- 输出:2025-04-05 10:30:45.123+08
SELECT CURRENT_TIMESTAMP;        -- 同上
SELECT CURRENT_DATE;             -- 输出:2025-04-05

SQL Server 获取当前时间

SQL Server 使用:

  • GETDATE():返回当前日期和时间
  • SYSDATETIME():更高精度的时间戳
示例:
SELECT GETDATE();           -- 输出:2025-04-05 10:30:45.987
SELECT SYSDATETIME();       -- 更高精度

Oracle 获取当前时间

Oracle 中常用:

  • SYSDATE:返回当前日期和时间
  • CURRENT_TIMESTAMP:包含时区信息的时间戳
示例:
SELECT SYSDATE FROM DUAL;                     -- 输出当前时间
SELECT CURRENT_TIMESTAMP FROM DUAL;

基本上就这些。根据你使用的数据库选择对应的函数即可。注意语法细节和数据类型差异。