我目前面临将 DateTime 值存储在 NVarChar 字段中以使其与文化无关的挑战。
我读过您可以通过使用将值转换为 intCONVERT(int, GETDATE(), 112)
应该使其与文化无关,但前一条语句不存储时间。
将 DateTime 存储为与文化无关的行业标准是什么?
- 编辑
请注意,我不能在我的场景中使用 DateTime。它必须是 NVarChar。
- 编辑 2
好吧,找到了我自己的问题的答案。
要将 DateTime 转换为它的 binary(8) 原始格式: convert(binary(8), GETDATE())
然后我将值存储在 VARCHAR 字段中,如下所示:CONVERT(VARCHAR(MAX), convert(binary(8), GETDATE()), 2)
要从 varchar 字段中检索它并将其转换为 DateTime:CONVERT(DateTime,CONVERT(binary(8), [TextField], 2))
就我而言,这会将 DateTime 存储为独立于文化的。
- 编辑 3
似乎用户 Kaf 有最好的解决方案。我宁愿使用格式 126 将其转换为文本,然后从文本转换回 DateTime。
谢谢大家,很抱歉造成混乱。