sql server報【從varchar數據類型到datetime數據類型的轉換產生一個超出范圍的值】錯誤的解決辦法


產生這個錯誤的原因是在使用convert函數將給定的日期字符串轉換為日期類型的時候,因為datetime這個數據類型有時間數值的范圍限定,當超出時間范圍時就拋出這個錯誤。

如果類型是【datetime】數據類型:最大是9999年12 月31日,最小是1753年1月1日。

如果類型是【smalldatetime】數據類型:最大值是2079年6月6日,最小值是1900年1月1日。

更多的,如果給定的日期字符串是一個錯誤的日期,也會報出這個錯誤,比如說:

select convert(datetime, '2018-11-31', 20); -- 報錯

看出問題來了嘛?11月份怎么會有31天呢,因為31天超出了11月份30天的范圍,因此就會報這個【從varchar數據類型到datetime數據類型的轉換產生一個超出范圍的值】的錯誤。

我遇過現場客戶給出【2015-09-38】的數據,排查半天才發現這個問題,真是讓人頭大。

 

"你現在多學一樣本事,就能在以后少說一句求人的話。"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM