【发布时间】:2015-08-18 17:28:21
【问题描述】:
我有现有的数据表,其中包含一个十六进制数据字段,该字段实际上是一个日期。
从现有代码中,我知道数据转换为 DATETIME 值:
SELECT CAST(0x0000214900000000 AS DATETIME)
我现在的问题是我需要手动将值插入到这些字段中,但我不知道如何为给定的DATETIME 生成十六进制值。
我已尝试插入 AS BINARY(8),但没有像上面那样返回正确的值。
如何执行此转换?
【问题讨论】:
-
这是一个时间戳字段吗?
-
样本输入十六进制值是多少,预期输出日期值是多少?
-
嗯?我不知道。这是我在 SQLServer 中编写数据表脚本时创建的值。它们看起来像上面一样,我需要这样的值。 - 示例输入值是正常日期,例如:1923-05-18 00:00:00.000。输出如上
-
取你的日期并减去'1900-01-01' 现在时间跨度的天数是转换为十六进制的天数,时间部分更复杂,但如果你不需要它只需添加缺少的 8 个零
标签: c# sql datetime casting hex