GETUTCDATE()函数从SQL服务器运行的操作系统中计算出这个值。
SQL GETUTCDATE函数
SQL GETUTCDATE是一个内置函数,它以UTC格式返回当前数据库的日期和时间,即以'YYYY-MM-DD hh:mm:ss.mm'的格式。GETUTCDATE()函数返回当前的UTC。此外, GETUTCDATE()函数还返回当前数据库系统的UTC日期和时间,以'YYYY-MM-DD hh:mm:ss.mm '的格式。
语法
SELECT GETUTCDATE();
参数
GETUTCDATE: 这个函数只返回当前数据库的日期和时间。
注意
- 操作系统的设置决定了UTC的日期和时间
- GETUTCDATE()也可以用来存储独立于时区的时间戳
例子
SELECT GETUTCDATE();
输出
2019-11-10 06:51:26.703
为了更好地理解,请看这个例子:
请看下面的代码:
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
输出
Server local time: Nov 10 2019 10:06PM
Server GMT time: Nov 10 2019 4:21PM
Server time zone: 6
getdate()和getutcdate()的区别。
getdate()和getutcdate()之间的主要区别是SQL SERVER机器的时区号。
SQL Server GETUTCDATE()
下面的例子使用GETDATE(), GETUTCDATE()和DATEDIFF()函数来返回本地时间、UTC和服务器时区:
DECLARE
@local_time DATETIME,
@utc_time DATETIME;
SET @local_time = GETDATE();
SET @utc_time = GETUTCDATE();
SELECT
CONVERT(VARCHAR(40), @local_time)
AS 'Server local time';
SELECT
CONVERT(VARCHAR(40), @utc_time)
AS 'Server UTC time'
SELECT
CONVERT(VARCHAR(40), DATEDIFF(hour, @utc_time, @local_time))
AS 'Server time zone';
GO
结论
要在SQL中获得UTC格式的当前数据库日期和时间,请使用SQL GETUTCDATE()函数。