为什么我们应该使用GETUTCDATE()函数而不是getdate()或副作用?
两者的目的是什么?请帮助我举个例子.
解决方法
GETUTCDATE()表示当前UTC时间(世界时协调或格林威治标准时间)
>它是一个非确定性函数,引用此列的视图和表达式无法编入索引.
当前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
OUTPUT:
Server local time: Jun 2 2007 10:06PM Server GMT time: Jun 2 2007 4:21PM Server time zone: 6
GETDATE()
>它将返回您的区域时间的日期,或者我们可以说,它返回当前系统的日期和时间.
>如果您远程连接到sql服务器,则显示的时间戳将是远程计算机的时间戳,而不是本地计算机.
>这是一个非确定性的功能.
>引用此列的视图和表达式无法编入索引.
GETUTCDATE()
>它将返回日期和GMT时间(格林威治标准时间).> GETUTCDATE()可用于存储独立于时区的时间戳.>当前UTC时间来自当前本地时间和运行Microsoft sql Server实例的计算机的操作系统中的时区设置.GETUTCDATE是一个非确定性函数.>引用此列的视图和表达式无法编入索引.