問題就在這裏:ISDATE和新西蘭返回false
select ISDATE('2012-06-21 4:11 P.M.')
文化是EN-NZ(新西蘭)和字符串日期上面是他們如何格式化的日期。
如何在這種情況下使ISDATE爲真?
問題就在這裏:ISDATE和新西蘭返回false
select ISDATE('2012-06-21 4:11 P.M.')
文化是EN-NZ(新西蘭)和字符串日期上面是他們如何格式化的日期。
如何在這種情況下使ISDATE爲真?
理想情況下,你將控制字符串格式比這更好的。你不應該關心文化是EN-NZ或其他任何東西,如果你在一個標準格式傳遞,如:
SELECT ISDATE('20120621 16:11'); -- will never fail regardless of locale/language/DMY
如果你需要讓人們在任何他們希望的格式輸入日期,那麼你必須以各種方式處理它。例如:
SELECT ISDATE(CONVERT(DATETIME, REPLACE('2012-06-21 4:11 P.M.', '.', ''), 120));
select ISDATE('21-06-2012 4:11 P.M.')
這種聯繫是在你的情況下,有用的
http://jefferychinet.blogspot.com/2009/02/sql-server-2005-change-datetime-format.html
由於'P.M.',我無法使用任何格式的日期工作。你試過這個嗎?你又爲什麼又大喊大叫? –
'DD/MM/yyyy',不'YYYY/MM/dd':http://msdn.microsoft.com/en-us/library/hc4ky857(v=vs.85) .aspx –
爲什麼'PM'中有點?你能解釋這個字符串格式是如何生成的嗎?有人在某處輸入了它嗎? –
@AaronBertrand - 我的c#控制檯線程文化設置爲en-NZ,並且當我從數據庫中提取日期字段時,這是當檢查DataTable時日期時間值的樣子。 – Rod