恢复CAST(0xABCD AS日期)

时间:2014-07-09 14:45:44

标签: sql sql-server casting

我正在设计一个查询,以根据数据库中的部分数据构建插入查询。

我知道您可以使用SQL Server Management Studio导出整个数据库,但我只需要一个部分,我需要它以自动形式。

SSMS为某个数据集生成的插入查询将是

INSERT INTO tbl (dateCol) VALUES(CAST(0xABCD AS Date))
GO

我正在尝试将此语句插入的日期强制转换为0xABCD。

我不知道0xABCD是什么类型的,所以我玩了一遍:

  • 转换为int返回Explicit conversion from data type date to int is not allowed错误
  • 转换为字符串返回ISO格式,但不返回0xABCD格式。

我可以使用ISO格式从强制转换为字符串吗?如果是这样,为什么MS选择在其自己的SSMS导出例程中使用某种十六进制值与CAST,而不是普遍可理解的ISO日期?

1 个答案:

答案 0 :(得分:2)

SELECT CAST(CAST(0xABCD AS INT) AS DATETIME)

- 2020-06-01 00:00:00.000

SELECT CAST(CAST(CAST('2020-06-01 00:00:00.000' AS DATETIME) AS INT) AS BINARY(2))

- 0xABCD