GETDATE (Transact-SQL)

返回当前数据库系统时间戳,返回值的类型为 datetime,并且不含数据库时区偏移量。此值得自运行 SQL Server 实例的计算机的操作系统。

注意注意

与 GETDATE 和 GETUTCDATE 比较而言,SYSDATETIME 和 SYSUTCDATETIME 的秒的小数部分精度更高。SYSDATETIMEOFFSET 包含系统时区偏移量。SYSDATETIME、SYSUTCDATETIME 和 SYSDATETIMEOFFSET 可以分配给采用任意日期和时间类型的变量。

有关所有 Transact-SQL 日期和时间数据类型及函数的概述,请参阅日期和时间函数 (Transact-SQL)。有关日期和时间数据类型及函数共有的信息和示例,请参阅使用日期和时间数据

主题链接图标Transact-SQL 语法约定

语法

GETDATE ( )

返回类型

datetime

注释

Transact-SQL 语句在可以引用 datetime 表达式时即可引用 GETDATE。

GETDATE 是非确定性函数。不能对在列中引用该函数的视图和表达式建立索引。

示例

以下示例使用六个返回当前日期和时间的 SQL Server 系统函数来返回日期和/或时间。这些值是连续返回的;因此,它们的秒小数部分可能有所不同。

A. 获取当前系统日期和时间

SELECT SYSDATETIME()
    ,SYSDATETIMEOFFSET()
    ,SYSUTCDATETIME()
    ,CURRENT_TIMESTAMP
    ,GETDATE()
    ,GETUTCDATE();

下面是结果集:

SYSDATETIME() 2007-04-30 13:10:02.0474381

SYSDATETIMEOFFSET()2007-04-30 13:10:02.0474381 -07:00

SYSUTCDATETIME() 2007-04-30 20:10:02.0474381

CURRENT_TIMESTAMP 2007-04-30 13:10:02.047

GETDATE() 2007-04-30 13:10:02.047

GETUTCDATE() 2007-04-30 20:10:02.047

B. 获取当前系统日期

SELECT CONVERT (date, SYSDATETIME())
    ,CONVERT (date, SYSDATETIMEOFFSET())
    ,CONVERT (date, SYSUTCDATETIME())
    ,CONVERT (date, CURRENT_TIMESTAMP)
    ,CONVERT (date, GETDATE())
    ,CONVERT (date, GETUTCDATE());

下面是结果集:

SYSDATETIME() 2007-05-03

SYSDATETIMEOFFSET() 2007-05-03

SYSUTCDATETIME() 2007-05-04

CURRENT_TIMESTAMP 2007-05-03

GETDATE() 2007-05-03

GETUTCDATE() 2007-05-04

C. 获取当前系统时间

SELECT CONVERT (time, SYSDATETIME())
    ,CONVERT (time, SYSDATETIMEOFFSET())
    ,CONVERT (time, SYSUTCDATETIME())
    ,CONVERT (time, CURRENT_TIMESTAMP)
    ,CONVERT (time, GETDATE())
    ,CONVERT (time, GETUTCDATE());

下面是结果集:

SYSDATETIME() 13:18:45.3490361

SYSDATETIMEOFFSET()13:18:45.3490361

SYSUTCDATETIME() 20:18:45.3490361

CURRENT_TIMESTAMP 13:18:45.3470000

GETDATE() 13:18:45.3470000

GETUTCDATE() 20:18:45.3470000