mysql中datetime列如何做篩選?
問(wèn)題描述
1,數(shù)據(jù)庫(kù)中有個(gè)數(shù)據(jù)的創(chuàng)建時(shí)間的列 F1,類(lèi)型是 datetime 類(lèi)型2,現(xiàn)在準(zhǔn)備做個(gè)根據(jù)給定時(shí)間來(lái)篩選數(shù)據(jù)的功能3,現(xiàn)在的SQL代碼如下:
select * from TABLE where F1 > ’2017-01-01 12:23:33’
上面的 > 可以是 < 或者 <=,重點(diǎn)是沒(méi)用 between and,根據(jù)觀察發(fā)現(xiàn)這么去篩的時(shí)候出來(lái)的數(shù)據(jù)有可能不太對(duì)。
4,個(gè)人猜猜:由于最終轉(zhuǎn)換成字符串的形式比較,所以感覺(jué)像是在做字符串比較而非時(shí)間比較導(dǎo)致數(shù)據(jù)不對(duì)。
5,問(wèn)題:想問(wèn)下大家有什么方法沒(méi)用可以使出來(lái)的數(shù)據(jù)是正確的,說(shuō)把列改類(lèi)型是不可能了,只能從SQL語(yǔ)句上想辦法了
問(wèn)題解答
回答1:datetime這樣比較是沒(méi)有問(wèn)題的 即使轉(zhuǎn)換成字符比較效果也是一樣的 你的數(shù)據(jù)不對(duì)怎么不對(duì)的 要找找其他的原因
回答2:解決方法就是采用 unix_timestamp 轉(zhuǎn)一下,最終使用整數(shù)形式比較一定是沒(méi)問(wèn)題的。
請(qǐng)問(wèn)下大家,不能直接使用字符串比較的原因是啥?
相關(guān)文章:
1. docker 17.03 怎么配置 registry mirror ?2. 前端 - @media query 使用出現(xiàn)的問(wèn)題?3. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個(gè)是怎么回事????4. node.js - mongodb查找子對(duì)象的名稱(chēng)為某個(gè)值的對(duì)象的方法5. 運(yùn)行python程序時(shí)出現(xiàn)“應(yīng)用程序發(fā)生異常”的內(nèi)存錯(cuò)誤?6. html5 - datatables 加載不出來(lái)數(shù)據(jù)。7. 測(cè)試自動(dòng)化html元素選擇器元素ID或DataAttribute [關(guān)閉]8. javascript - QQ第三方登錄的問(wèn)題9. 利用IPMI遠(yuǎn)程安裝centos報(bào)錯(cuò)!10. spring-mvc - spring-session-redis HttpSessionListener失效

網(wǎng)公網(wǎng)安備