GETUTCDATE函数

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (48)

我们为什么要用GETUTCDATE()功能代替getdate()

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

提问于
用户回答回答于

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

  • 它是一个nondeterministic函数,引用此列的视图和表达式不能编入索引。

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

SQL Server计算机的区别GETDATE()GETUTCDATE()是时区编号

为了更好的理解,请看例子:

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

OUTPUT:

Server local time: Jun  2 2007 10:06PM
Server GMT time: Jun  2 2007  4:21PM
Server time zone: 6

GETDATE()

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

GETUTCDATE()

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

扫码关注云+社区