SQL转换int64/时间到日期



我有一个SQL表,其列的数据类型为varchar,其中包含时间戳格式的日期。

AccessId    Date                 ComputerName   NumberOfTries
-------------------------------------------------------------
1       132926085611026702   TESTE                1

当我使用命令时

[datetime]::FromFileTime('132926085611026702')

在PowerShell中,我可以正确地获取数据:

Thursday, March 3, 2022 4:03:42 PM

但我想知道我是如何通过SQL直接转换到Power BI 中使用的

假设DateTime.FromFileTime(Int64)处理基于1601-01-01 00:00:00Z的值。。。。

Windows文件时间是一个64位值,表示自公元1601年1月1日午夜12:00(C.E.(协调世界时(UTC(以来经过的100纳秒间隔数。

。。。然后您需要使用CONVERT( bigint, "Date" ),然后将其与nanosecond和"1601-01-01 00:00:00"一起传递到DATEADD

SELECT
DATEADD( nanosecond, CONVERT( bigint, "Date" ), CONVERT( datetime2(7), '1601-01-01 00:00:00' ) )
FROM
myTable

最新更新