mysql中的日期格式問題
阿新 • • 發佈:2021-12-01
在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