SQL SYSUTCDATETIME 函数

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]
Select Current Date 1

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 SYSUTCDATETIME Function 2

我们使用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];
SQL SYSUTCDATETIME Function 3

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