【发布时间】:2016-04-29 10:02:04
【问题描述】:
大家好,stackoverflowers,
我遇到了一个小问题。
在一个表格中,我有一个列,其中包含一个日期,但它存储为一个十六进制值。
例如:
0xF2F84BF0F44BF2F0F1F6
我知道它背后有一个日期。
我试过了:
我在运行存储过程时将十六进制值存储在一个名为“@date”的变量中
SELECT Cast(@date as datetime)
但这给了我一个神秘版本的“o”背。
当我尝试使用 Convert(datetime,@date,103) 时,我收到一个错误,即二进制值无法转换为日期时间。
我希望有人可以帮助我。
问候 灵魂
【问题讨论】:
-
如果您通过存储过程运行得到它,您可以看到数据是如何转换为 HEX 的。您能给我们提供这些信息吗?
-
我使用存储过程处理数据,它不会通过存储过程放入表中。
-
我同意艾伦的观点,您需要了解该十六进制值是如何生成的,它不是标准格式。如果您知道它应该在什么日期生产,您也许可以对其进行逆向工程。
-
嗯 - 二进制数/十六进制的值对于日期时间类型来说似乎太高了,所以正在发生其他事情。
-
我得到了这个声明的帮助:select * from openquery(server, 'select cast(DATUM as char(10) CCSID 273) as Verfalldatum from db');
标签: sql-server tsql date datetime