GETUTCDATE功能

Emm*_*apa 29 sql sql-server

我们为什么要使用GETUTCDATE()函数而不是反函数getdate()

两者的目的是什么?请帮我举个例子.

Vis*_*har 60

GETUTCDATE()表示当前UTC时间(世界时间坐标或格林威治标准时间)

  • 它是一个nondeterministic函数,引用此列的视图和表达式无法编入索引.

当前UTC时间源自运行SQL Server的计算机的操作系统中的当前本地时间和时区设置.

GETDATE()和之间的区别GETUTCDATE()SQL Server计算机的区编号.

为了更好地理解,请参阅示例:

DECLARE @local_time DATETIME;
DECLARE @gmt_time DATETIME;
SET @local_time = GETDATE();
SET @gmt_time = GETUTCDATE();
SELECT 'Server local time: '
   + CONVERT(VARCHAR(40),@local_time);
SELECT 'Server GMT time: '
   + CONVERT(VARCHAR(40),@gmt_time);
SELECT 'Server time zone: '
   + CONVERT(VARCHAR(40),
      DATEDIFF(hour,@gmt_time,@local_time));
GO
Run Code Online (Sandbox Code Playgroud)

OUTPUT:

Server local time: Jun  2 2007 10:06PM
Server GMT time: Jun  2 2007  4:21PM
Server time zone: 6
Run Code Online (Sandbox Code Playgroud)

GETDATE()

  • 它将返回您的区域时间的日期,或者我们可以说,它返回当前的系统日期和时间.
  • 如果远程连接到SQL服务器,则显示的时间戳将是远程计算机的时间戳,而不是本地计算机的时间戳.
  • 这是一种不确定的功能.
  • 无法索引引用此列的视图和表达式.

GETUTCDATE()

  • 它将返回日期和GMT时间(格林威治标准时间).
  • GETUTCDATE()可用于存储独立于时区的时间戳.
  • 当前UTC时间源自运行Microsoft SQL Server实例的计算机的操作系统中的当前本地时间和时区设置.
  • GETUTCDATE是一个不确定的函数.
  • 无法索引引用此列的视图和表达式.