mysql數(shù)據(jù)庫保存datetime類型的日期,查詢出來的秒不正確問題
事件:
在使用公司封裝的數(shù)據(jù)庫映射工具保存數(shù)據(jù)到mysql數(shù)據(jù)庫,保存的數(shù)據(jù)時(shí)間是2022-08-10 12:29:28,調(diào)用通用查詢方法查出的結(jié)果是2022-08-10 12:29:29,另外一條數(shù)據(jù)保存時(shí)間2022-08-10 12:35:01,查詢結(jié)果又一致,時(shí)好時(shí)不好,數(shù)據(jù)不一致導(dǎo)致后續(xù)業(yè)務(wù)異常。
排查原因:
網(wǎng)上查閱了資料之后:create_time這個(gè)字段用的mysql的datetime類型,這個(gè)字段的長度默認(rèn)是0,也就是說,默認(rèn)不保存秒級(jí)以下的,就是不保存毫秒值,但會(huì)做四舍五入,如果是.500毫秒以下,就省略,如果是.500毫秒以上的時(shí)間,就會(huì)多一秒,保存到數(shù)據(jù)庫,也就造成了數(shù)據(jù)對(duì)不上。
解決方法:
修改數(shù)據(jù)保存時(shí)的時(shí)間。代碼保存的時(shí)候不要使用new Date(),控制在秒級(jí),或者數(shù)據(jù)庫保存為毫秒級(jí)別,這樣就統(tǒng)一了,
Mysql數(shù)據(jù)庫日期時(shí)間類型:
date:日期類型,默認(rèn)格式:yyyy-mm-dd 范圍 1000-1-1/9999-12-31
time : 默認(rèn)格式:HH:mm:ss 范圍1:不寫年月日時(shí),-838:59:59/838:59:59 范圍2: 寫年月日時(shí), -23:59:59/23:59:59
datetime(常用):默認(rèn)格式: yyyy-mm-dd hh:mm:ss 范圍: 1000-1-1 23:59:59/9999-12-31 23:59:59
timestamp:時(shí)間戳類型 范圍:1970-01-01 00:00:00/2038-1-18 23:59:59
鏈接:https://www.dianjilingqu.com/478643.html