我将datetime值作为sql float类型(从DateTime.OADate转换)存储在数据库中,原因有很多,但在某些情况下,从数据库中获取一个人类可读的日期/时间列是很好的.我发现我可以执行该语句
SELECT CAST (timerecorded_utc as DATETIME) FROM tablename
Run Code Online (Sandbox Code Playgroud)
它会给我一个我正在寻找的日期时间字符串,但它似乎已经关闭了2天.我意识到我可以修改语句(因为时间表示为双1天= 1.0)
SELECT CAST (timerecorded_utc-2.0 as DATETIME) FROM tablename
Run Code Online (Sandbox Code Playgroud)
但我想知道这是否一致,在我看来,我有一些原因导致我失踪的差异.
这是因为日期使用的时代是不同的.
SQL Server的DATETIME使用01/01/1900 00:00:00作为纪元,您可以通过运行以下查询来查看: SELECT CAST(0 AS DATETIME)
OADate有点奇怪,因为它可能有一个30/12/1899 00:00:00或31/12/1899 00:00:00的纪元,具体取决于你是否分别相信Visual Basic或Excel家伙.看来,从你的两天差异来看,.NET版本与第30版一致.
因此,当您通过原始数字在两种类型的日期之间进行转换时,两天的时间关闭会给结果带来两天的差异.
| 归档时间: |
|
| 查看次数: |
3561 次 |
| 最近记录: |