mysql中針對datatime時間型別的注意點

2021-10-08 08:35:36 字數 885 閱讀 2903

前言:最近剛入職實習,檢視公司業務**時,發現一塊sql語句查詢結果不太理解的地方。

1.問題

xml裡面sql語句查詢最新的工作日

select * from t_fundinfo_gil_tradingday

where l_if_tradingday = 1 and da_tradingdate

order by da_tradingdate desc limit 1;

sql語句中時間『2020-07-20』記得需要新增單引號,不然可能會出錯。

2.疑問

上述sql語句我當時時間沒有加單引號,當查詢小於2020-07-20時,不加單引號,查詢結果為空,sql語句不報錯;

但是我查詢大於2020-07-20時,不加單引號,卻能查詢的一條結果。

這點我十分疑惑,本著有問題就研究是原則,我做了些測試。

3.嘗試找原因

按理說不加單引號的話,會預設將2020-07-20當成int,也就是計算2020-07-20=1993;

update t_test

set `update`=2020-07-20 where id=1;

上述sql報錯:incorrect datatime value :『1993』驗證了這一點。但是在select語句中竟然不會報錯,一直百思不得其解。

4.希望有大佬可以指點迷津

萬分感謝!!!!

MySQL 針對null的排序

預設情況下,mysql將null算作最小值。如果想要手動指定null的順序,就是使用ifnull函式,ifnull expr1,expr2 如果 expr1 不是 null,ifnull 返回 expr1,否則它返回 expr2。ifnull 返回乙個數字或字串值,取決於它被使用的上下文環境。ifn...

MySQL中針對大資料量常用技術

如今隨著網際網路的發展,資料的量級也是撐指數的增長,從gb到tb到pb。對資料的各種操作也是愈加的困難,傳統的關係性資料庫已經無法滿足快速查詢與插入資料的需求。這個時候nosql的出現暫時解決了這一危機。它通過降低資料的安全性,減少對事務的支援,減少對複雜查詢的支援,來獲取效能上的提公升。但是,在有...

針對性的mysql 查詢統計

需求如下 human m 表角色資訊表 human m.id human m.name task m 表角色任務表 關聯human m表id task m.id task m.compleatetask human m 和task m表是一對多的關係,即 乙個角色對應多調任務表 資料 其中b表com...