1. 程式人生 > 其它 >mysql中的日期格式問題

mysql中的日期格式問題

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

Data Datatime Timestamp
儲存資料格式 YYYY-MM-DD YYYY-MM-DDhh: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條件後寫入wheredt = ‘2021-12-01’時,想要查出一天的資料時。若dt的型別是date時,則可以查出;若dt的型別是datetime時或者其他型別,則無法查出。因為在MySQL中,會對時間型別進行自動補零。上面的實際語句為wheredt = ‘2021-12-01 00:00:00’。

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

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

      2、使用MySQL中的to_days(next_day)函式,使用betweenand