SQL Server 的 SYSUTCDATETIME 函数是日期函数之一,它可用于将当前系统时间戳返回为 datetime2 值。此 SYSUTCDATETIME 函数的返回值是当前协调世界时(UTC 时间)。它源自运行服务器实例的计算机的操作系统(OS)。
注意:此函数与GETUTCDATE函数相似,区别在于:
- SYSUTCDATETIME 返回的秒小数精度最高为 7 位,而 GETUTCDATE 返回的精度最高为 3 位。
- SYSUTCDATETIME 返回 datetime2 作为数据类型,而 GETUTCDATE 返回 DateTime。
SQL SYSUTCDATETIME 语法
SYSUTCDATETIME 函数的语法是:
SYSUTCDATETIME()
SQL Server SYSUTCDATETIME 函数示例
SYSUTCDATETIME 函数返回 datetime2 数据类型,格式为:“yyyy-mm-dd hh:mm:ss.nnnnnnn”。从下面的屏幕截图可以看到,秒小数精度为 7 位。
SELECT SYSUTCDATETIME() AS [Current_Date]

SYSUTCDATETIME 函数示例 2
此SQL Server函数返回 datetime2 类型的当前系统时间戳。在这里,我们将通过示例展示 SQL Server SYSUTCDATETIME 函数。
SELECT 'Today' AS 'TODAY', SYSUTCDATETIME() AS [Current_Date]; SELECT 'Milli Seconds' AS 'MILLISECOND', DATEPART(millisecond, SYSUTCDATETIME()) AS [MilliSeconds_Value]; SELECT 'Micro Seconds' AS 'MICROSECOND', DATEPART(microsecond, SYSUTCDATETIME()) AS [MicroSeconds_Value]; SELECT 'Nano Seconds' AS 'NANOSECOND', DATEPART(nanosecond, SYSUTCDATETIME()) AS [NanoSeconds_Value]; SELECT 'Day' AS 'DAY', DATENAME(WEEKDAY, SYSUTCDATETIME()) AS [Day_Name]; SELECT 'Tomorrow' AS 'DAY', DATEADD(day, 1, SYSUTCDATETIME()) AS [Next_Date];

我们使用SQL DATEPART函数显示今天日期和时间的微秒、毫秒和纳秒。
SELECT 'Milli Seconds' AS 'MILLISECOND', DATEPART(millisecond, SYSUTCDATETIME()) AS [MilliSeconds_Value]; SELECT 'Micro Seconds' AS 'MICROSECOND', DATEPART(microsecond, SYSUTCDATETIME()) AS [MicroSeconds_Value]; SELECT 'Nano Seconds' AS 'NANOSECOND', DATEPART(nanosecond, SYSUTCDATETIME()) AS [NanoSeconds_Value];
接下来,我们使用DATENAME函数显示今天日期和时间的星期名称。
SELECT 'Day' AS 'DAY', DATENAME(WEEKDAY, SYSUTCDATETIME()) AS [Day_Name];
我们使用DATEADD函数显示明天的日期和时间。
SELECT 'Tomorrow' AS 'DAY', DATEADD(day, 1, SYSUTCDATETIME()) AS [Next_Date];
SYSUTCDATETIME 函数示例 3
在此 SQL Server SYSUTCDATETIME 函数示例中,我们将找出变量和当前日期和时间之间分钟、秒和毫秒的差异。为此,我们使用DATEDIFF函数。
DECLARE @dtime DATETIME2 SET @dtime = '2016-08-27 03:54:27.5301234' SELECT 'Minutes_Difference' AS 'MINUTE', DATEDIFF(MINUTE, @dtime, SYSUTCDATETIME()) AS [Number of Minutes]; SELECT 'Seconds_Difference' AS 'SECOND', DATEDIFF(SECOND, @dtime, SYSUTCDATETIME()) AS [Number of Seconds]; SELECT 'Millisecond_Diff' AS 'MILLISECOND', DATEDIFF(MILLISECOND, @dtime, SYSUTCDATETIME()) AS [Number of MilliSeconds];

从上面可以看出,我们使用了 DATEDIFF 日期和时间函数来查找当前日期和时间与我们声明的 @dtime 变量之间的差异。