2014-03-24 47 views
1

我花了很長時間退出,無法弄清楚如何檢查給定日期是否爲YYYYMMDD格式。任何人都可以建議我一個簡單的方法,這可以實現在sql如何檢查給定的日期是否爲yyyymmdd格式sql server

謝謝。

+11

你知道一個日期永遠不會「以這種格式」,因爲日期沒有固有格式 - 格式總是可視化的。日期的「內部格式」是一個數字。 – TomTom

+0

請檢查此問題:http://stackoverflow.com/questions/12266518/sql-server-date-format-mm-dd-yyyy – ederollora

+1

+1問初學者問題,並得到絕對粗魯的答覆。 – RubberDuck

回答

3

您最多可以詢問字符串是否代表YYYYMMDD格式的日期。答案是沒有,沒有這樣的方式。您將無法區分20140305(即2014年3月5日)和20140305(2014年5月3日)。充其量,你可以聲稱你可以有信心地回答某些日期

4

更新到SQL Server 2012後,您可以使用TRY_CONVERTTRY_CAST來測試字符串。

通過使用TRY_CONVERT(DATE, MyColumn, 112)當轉換失敗時,由於字符串爲YYYYDDMM格式,您將獲得值或空值。

對於2012年之前的SQL Server,您可以做的最好的事情是將CONVERT(DATE, MyColumn, 112)包含在TRY CATCH之內。這會在每次嘗試轉換格式不正確的字符串時發現錯誤,但這不會在2012年將給您帶來NULL類似TRY_CONVERT的結果。

相關問題