我正在设计一个查询,以根据数据库中的部分数据构建插入查询。
我知道您可以使用SQL Server Management Studio导出整个数据库,但我只需要一个部分,我需要它以自动形式。
SSMS为某个数据集生成的插入查询将是
INSERT INTO tbl (dateCol) VALUES(CAST(0xABCD AS Date))
GO
我正在尝试将此语句插入的日期强制转换为0xABCD。
我不知道0xABCD是什么类型的,所以我玩了一遍:
Explicit conversion from data type date to int is not allowed
错误我可以使用ISO格式从强制转换为字符串吗?如果是这样,为什么MS选择在其自己的SSMS导出例程中使用某种十六进制值与CAST,而不是普遍可理解的ISO日期?
答案 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