2013-04-15 79 views
2

我有一個從平面文件中以DD/MM/YYYY格式保存的日期。 「20/04/2013」​​字符串的日期轉換失敗

當我嘗試將其插入到我的SQL Server數據庫中時,它將值更改爲MM/DD/YYYY。

所以當然在那裏沒有20個月,我的代碼失敗了。我該如何解決這個問題?

我試過這樣的東西,我沒有運氣。

SELECT CONVERT(datetime, CONVERT(varchar, '20/04/2013', 101)) 
+2

101是美國格式的代碼,你的想法完全告訴你的轉換使用MM/DD/YYYY - 您應該使用103是DD/MM/YYYY。關於轉換和轉換代碼的更多信息,請參見: http://msdn.microsoft.com/en-us/library/ms187928.aspx –

回答

2

只是這樣做直接,

SELECT CONVERT(datetime, '20/04/2013', 103) 
+0

謝謝,這確實有竅門! – Etienne

+0

不客氣':D' –

1

在SQL Server上,你需要使用SET DATEFORMAT選項。 (見http://msdn.microsoft.com/en-us/library/ms189491.aspx)。

在你的情況,你需要執行上述SELECT語句之前發出以下命令:

SET DATEFORMAT dmy 

或者,也可以在全球範圍內改變DATEFORMAT設置服務器。

0

定義和用法 CONVERT()函數是將一種數據類型的表達式轉換爲另一種數據類型的通用函數。

CONVERT()函數可用於以不同格式顯示日期/時間數據。

選擇轉換(日期時間,'20/04/2013' ,103) enter link description here

相關問題