mysql中datetime列如何做篩選?
問題描述
1,數(shù)據(jù)庫中有個(gè)數(shù)據(jù)的創(chuàng)建時(shí)間的列 F1,類型是 datetime 類型2,現(xiàn)在準(zhǔn)備做個(gè)根據(jù)給定時(shí)間來篩選數(shù)據(jù)的功能3,現(xiàn)在的SQL代碼如下:
select * from TABLE where F1 > ’2017-01-01 12:23:33’
上面的 > 可以是 < 或者 <=,重點(diǎn)是沒用 between and,根據(jù)觀察發(fā)現(xiàn)這么去篩的時(shí)候出來的數(shù)據(jù)有可能不太對(duì)。
4,個(gè)人猜猜:由于最終轉(zhuǎn)換成字符串的形式比較,所以感覺像是在做字符串比較而非時(shí)間比較導(dǎo)致數(shù)據(jù)不對(duì)。
5,問題:想問下大家有什么方法沒用可以使出來的數(shù)據(jù)是正確的,說把列改類型是不可能了,只能從SQL語句上想辦法了
問題解答
回答1:datetime這樣比較是沒有問題的 即使轉(zhuǎn)換成字符比較效果也是一樣的 你的數(shù)據(jù)不對(duì)怎么不對(duì)的 要找找其他的原因
回答2:解決方法就是采用 unix_timestamp 轉(zhuǎn)一下,最終使用整數(shù)形式比較一定是沒問題的。
請(qǐng)問下大家,不能直接使用字符串比較的原因是啥?
相關(guān)文章:
1. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””2. docker-compose中volumes的問題3. boot2docker無法啟動(dòng)4. nignx - docker內(nèi)nginx 80端口被占用5. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.6. dockerfile - 為什么docker容器啟動(dòng)不了?7. docker容器呢SSH為什么連不通呢?8. node.js - antdesign怎么集合react-redux對(duì)input控件進(jìn)行初始化賦值9. java - SSH框架中寫分頁時(shí)service層中不能注入分頁類10. 關(guān)于docker下的nginx壓力測(cè)試

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