我知道有一個稱爲isdate()來驗證日期時間列的函數,但它只適用於smalldatetime和datetime類型。 現在的問題是:有沒有類似的方式來驗證sql server 2008和2012中的新數據類型datetime2?是否有像datedate2這樣的函數?
回答
在SQL Server 2012中,你可以使用TRY_CONVERT
:
SELECT TRY_CONVERT(DATETIME2, '2012-02-02 13:42:55.2323623'),
TRY_CONVERT(DATETIME2, '2012-02-31 13:42:55.2323623');
結果:
2012-02-02 13:42:55.2323623 NULL
或者TRY_PARSE
:(的結果相同)
SELECT TRY_PARSE('2012-02-02 13:42:55.2323623' AS DATETIME2),
TRY_PARSE('2012-02-31 13:42:55.2323623' AS DATETIME2);
對不起,我沒有對你有一個聰明的答案< 2012年,你可以,我想,說
SELECT ISDATE(LEFT('2012-02-02 13:42:55.2323623', 23);
但是,感覺很髒。
TRY_CONVERT
documentation on MSDN
TRY_PARSE
documentation on MSDN
不錯的一個................ –
聰明的答案!我很喜歡它!另一個關於sql server 2008中的datetime2的問題是,有沒有辦法在1753年1月1日之前檢查有效日期?使用此命令將會導致無效日期SELECT ISDATE(LEFT('2012-02-02 13:42:55.2323623',23)); – Vladimir
@Vladimir對不起,我現在才注意到你的問題。這是學術還是你真的有日期<1753年? –
- 1. 在Delphi中是否有像PHP的vardump這樣的函數?
- 2. jQuery JavaScript是否有像布爾型的parseInt這樣的函數
- 3. 是否有像PHP的exit()這樣的JavaScript函數?
- 4. Xcode中是否有像sleepWithTimeInterval()這樣的函數?
- 5. 在MSMQ中是否有像JMS Topic這樣的等價函數?
- 6. Swift在Ruby中是否有像`array.reject`這樣的函數?
- 7. Lua中是否有像xrange這樣的函數?
- 8. Elasticsearch:是否有像mongodb這樣的函數findOne
- 9. 對於Hbase,在MySQL中是否有像EXPLAIN這樣的函數?
- 10. 是否有像_compile_select或get_compiled_select()這樣的函數?
- 11. 在gdb中是否有像`isfile`,`exists`或`-e`這樣的函數?
- 12. 在jQuery中是否有像array_unique()這樣的函數?
- 13. 是否有像PeekMessage這樣的函數不處理消息?
- 14. 是否有像mysql_real_escape_string這樣的VB6函數?
- 15. 是否有像這樣的jQuery工具?
- 16. 是否有像java.awt.Polygon這樣的codenameone類?
- 17. 在PHP中,是否有像stristr這樣的函數,但是對於數組?
- 18. 是否有像sortWith函數一樣的本地分組函數?
- 19. Python中是否存在像這樣的模式匹配函數?
- 20. 是否有像流這樣的數據結構,但是很弱?
- 21. 是否有像asctime_s()這樣的函數可用於Windows中的SYSTEMTIME結構?
- 22. 是否有像'system'這樣的不等待返回值的Perl函數?
- 23. 是否有像substringFromIndex這樣的函數使用較少的內存?
- 24. 是否有像in_array這樣的函數來檢查PHP中的空值?
- 25. Swift是否有像Any或All這樣的高階函數短路?
- 26. Java庫在C++中是否具有像std :: lower_bound(),std :: upper_bound()這樣的函數?
- 27. 在Perl中是否有一些像zip和fold這樣的函數?
- 28. 是否有可能在f#中編寫像這樣的遞歸分組函數?
- 29. 是否有一個庫提供像LinqPad這樣的格式化Dump()函數?
- 30. 是否有像「bcadd」這樣的函數,除了它執行乘法?
嚴格地說ISDATE()不驗證datetime列;它驗證表達式是否可以解析爲日期時間。它在一個專欄之後有點晚了! –
@MitchWheat這是一個很好的觀點。似乎更可能驗證(a)在varchar列中存儲的日期不正確或(b)數據類型不正確的輸入參數。 –
我想驗證Excel表格中包含某些日期列的輸入到臨時表中。 – Vladimir