我目前有一個挑戰,即在NVarChar字段中存儲日期時間值,以使其與文化無關。將日期時間作爲文化獨立存儲在SQL Server 2008中
我讀過,你可以使用CONVERT(int, GETDATE(), 112)
將值轉換爲int,這應該使它獨立於文化,但前面的語句不存儲時間。
將文本獨立存儲爲DateTime的行業標準是什麼?
- 編輯
請注意,我不能在我的場景中使用日期時間。它必須是NVarChar。
- EDIT 2
好了,找到了答案,以我自己的問題。
要轉換的日期時間到它的二進制(8)原始格式: 轉換(二進制(8),GETDATE())
我則該值存儲在一個VARCHAR字段如下: CONVERT(VARCHAR( MAX),轉換(二進制(8),GETDATE()),2)
要檢索其從varchar字段後面,並將其轉換爲DateTime: CONVERT(日期時間,CONVERT(二進制(8),[TextField的] ,2))
就像我擔心的那樣,這會將DateTime存儲爲獨立的文化。
- 編輯3
好像用戶卡夫擁有最佳的解決方案。我寧願使用格式126將其轉換爲文本,然後從文本返回到DateTime。
謝謝大家,併爲此感到抱歉。
可能重複的[如何使DateTime獨立於當前的文化?](http:// stackoverflow .com/questions/5893937/how-to-make-datetime-independant-from-the-current-culture) –
我已經看過了可能的重複,但那個指的是C#。我正在問具體關於SQL Server。 – user2418900
存儲爲任務的適當數據類型 - 「datetime」。只有在將數據呈現給用戶時,文化才應發揮作用。使用不適當的數據類型會給你無數的編程,格式和性能問題。 – alroc