mysql中的日期格式問題


  在Mysql中,關於日期的格式有三種類型:Data、Datatime、Timestamp

  Data Datatime Timestamp
存儲數據格式 YYYY-MM-DD YYYY-MM-DD hh:mm:ss yyyymmddhhmmss
支持的范圍 1000-01-01 到 9999-12-31

1000-01-01 00:00:00 到

9999-12-31 23:59:59

1770-01-01到2037年

 

特殊說明 允許使用字符串或者數字來賦值。例如,12331212和‘1233-12-12’的存儲結果為:1233-12-12 允許使用字符串或者數字來賦值。例如,12331212121212和‘1233-12-12 12:12:12’的存儲結果都為:1233-12-12 12:12:12 給該類型字段賦值時,值必須大於19700101000000,否則會拋異常。

 

 

 

 

 

 

 

 

 

 

注意:對於datatime類型:

  1、自動識別時間字符串:

    當寫入其他時間字符串時,只有數據庫識別成功才能夠寫入成功,且是想要的數據;如果識別不了的時間值,會顯示為:‘000-00-00 00:00:00’

  2、查詢時智能補全模式:

    假設要查詢某天的全部數據,當在where條件后寫入where dt = ‘2021-12-01’時,想要查出一天的數據時。若dt的類型是date時,則可以查出;若dt的類型是datetime時或者其他類型,則無法查出。因為在MySQL中,會對時間類型進行自動補零。上面的實際語句為where dt = ‘2021-12-01 00:00:00’。

    要想解決上面的問題有兩種思路:

      1、在service層中對傳進來的時間進行拼接(next_day + " (一定要在這個位置加一個空格)00:00:00")

      2、使用MySQL中的to_days(next_day)函數,使用between and


免責聲明!

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



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