【问题标题】:How can I get the full milliseconds in SQL server?如何在 SQL Server 中获得完整的毫秒数?
【发布时间】:2018-01-29 11:52:06
【问题描述】:
DECLARE @Now DATETIME2(7) = SYSDATETIME();

SELECT
    [Datetime2(1)] = DATEPART(MILLISECOND,CAST(@Now AS DATETIME2(1))),
    [Datetime2(2)] = DATEPART(MILLISECOND,CAST(@Now AS DATETIME2(2))),
    [Datetime2(3)] = DATEPART(MILLISECOND,CAST(@Now AS DATETIME2(3))),
    [Datetime2(4)] = DATEPART(MILLISECOND,CAST(@Now AS DATETIME2(4))),
    [Datetime2(5)] = DATEPART(MILLISECOND,CAST(@Now AS DATETIME2(5))),
    [Datetime2(6)] = DATEPART(MILLISECOND,CAST(@Now AS DATETIME2(6))),
    [Datetime2(7)] = DATEPART(MILLISECOND,CAST(@Now AS DATETIME2(7)))

执行返回以下示例值:

300 260 265 264 264 264 264

如何获得更高的精度?

【问题讨论】:

    标签: sql-server datepart datetime2


    【解决方案1】:

    没关系,函数返回一个 int,这不是我所期望的。我应该使用 NANOSECOND,然后划分它。

    DECLARE @Now DATETIME2(7) = SYSDATETIME();
    
    SELECT
        [Datetime2(1)] = DATEPART(NANOSECOND,CAST(@Now AS DATETIME2(1)))/1000000.0,
        [Datetime2(2)] = DATEPART(NANOSECOND,CAST(@Now AS DATETIME2(2)))/1000000.0,
        [Datetime2(3)] = DATEPART(NANOSECOND,CAST(@Now AS DATETIME2(3)))/1000000.0,
        [Datetime2(4)] = DATEPART(NANOSECOND,CAST(@Now AS DATETIME2(4)))/1000000.0,
        [Datetime2(5)] = DATEPART(NANOSECOND,CAST(@Now AS DATETIME2(5)))/1000000.0,
        [Datetime2(6)] = DATEPART(NANOSECOND,CAST(@Now AS DATETIME2(6)))/1000000.0,
        [Datetime2(7)] = DATEPART(NANOSECOND,CAST(@Now AS DATETIME2(7)))/1000000.0
    

    【讨论】:

      猜你喜欢
      • 2010-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多