我需要檢查存儲在SQL表中的格式是否爲YYYY-MM-DD。檢查格式是否爲YYYY-MM-DD
回答
嘗試這種方式
SELECT CASE WHEN ISDATE(@string) = 1
AND @string LIKE '[1-2][0-9][0-9][0-9]/[0-1][0-9]/[0-3][0-9]'
THEN 1 ELSE 0 END;
@string是日期。
你不存儲特定的格式(我認爲MS SQL存儲爲兩個整數),你選擇你的格式輸出。當我說你選擇時,我的意思是你有你的默認值(大多數是在安裝MS SQL時自動設置,或者基於你的國家,時區等使用的任何設置 - 你可以改變這一點)以及你在執行腳本時選擇的默認值。
MS-SQL Server將日期存儲爲浮點數。試試這個:SELECT CAST({d'1900-01-01'} AS FLOAT)作爲FirstPossible,CAST(GETDATE()作爲FLOAT)作爲CurrentDate'。整數部分是自1900-01-01以來的天數,而逗號後面的部分是當天的時間。這就是爲什麼增加時間會導致1900年1月某個地方有趣的日期的原因:-) – Shnugo
你可以設置格式,但據我所知不能檢查格式。
首要的是:如果日期值存儲在date
或datetime
或等效的時態數據類型列中,那麼在數據庫級別中不會有日期格式。日期本身已通過在特定數據庫引擎的給定數據類型中定義的規則進行驗證,並以其定義的任何二進制格式進行存儲。
如果數據是一個字符串(從文件或例如VARCHAR列),那麼你可以,如果它是在使用TO_DATE()
或TRY_CONVERT()
功能在MySQL的SQL Server和STR_TO_DATE()
的新版本給定的格式驗證,或者你可以使用第三方/自己寫的模塊/ clrs來做到這一點。
這些驗證只會檢查字符串是否符合給定的格式,而日期部分是否在可接受的日期範圍內,但不會測試值的含義。將02/03/2005字符串轉換爲日期也適用於MM/DD/YYYY
和DD/MM/YYYY
格式,除非我們有關於最初存儲它的環境的信息,否則無法確定哪一個是真正的值。
永遠不要將時態數據存儲在基於字符的列(如varchar)中,使用符合您需要的數據類型(DATE/DATETIME/TIMESTAMP/whatever)。
- 1. 如何檢查給定的日期是否爲yyyymmdd格式sql server
- 2. 使用格式YYYYMMDD
- 3. 如何檢查單元格是否格式化爲貨幣?
- 4. 如何檢查格式是否正確
- 5. 如何檢查格式是否有效?
- 6. 將yyyymmdd轉換爲月份格式
- 7. C#解析timestampwith格式爲「YYYYMMDD HH:MM:SS.ms」
- 8. 將YYYYMMDD轉換爲mm/dd/yyyy格式
- 9. 檢查單元格是否爲空
- 10. PHP - 檢查單元格是否爲空
- 11. 檢查excel單元格是否爲空
- 12. getline檢查行是否爲空格
- 13. SQL Server日期格式yyyymmdd
- 14. 更改日期格式YYYYMMDD
- 15. 檢查文件是否具有Python格式的CSV格式
- 16. 檢查Sympy表達式是否爲Nan?
- 17. 如何檢查字符串是否爲xxxxx.xxxx格式在c#中?
- 18. 使用shell腳本檢查文件是否爲jpeg格式
- 19. 如何檢查電子郵件是否爲有效格式?
- 20. 使用Regex檢查Double值是否爲特定格式
- 21. 如何檢查給定文件是否爲PROPER文件格式?
- 22. Javascript檢查文件是否爲mp3格式?
- 23. 如何將日期值格式更改爲YYYYMMDD格式
- 24. 我是否要檢查手機時間格式是否設置爲24小時?
- 25. 檢查表格的單元格是否包含某種形式
- 26. 檢查屬性是否存在與檢查是否爲空
- 27. 檢查time_t是否爲零
- 28. 檢查dataGridView是否爲空
- 29. 檢查JValue是否爲空
- 30. 檢查imageView是否爲空
Tag dbms used! (當涉及到日期/時間時,太多的產品遠遠不符合ANSI SQL標準。) – jarlh
但是,您爲什麼需要這樣做?總是使用'日期'數據類型的日期... – jarlh
我正在分析一個已經存在的數據集。我試過了:像'%YYYY-MM-DD%''但是確定它是否正確。 –