我有一个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