U3YS@S}8IRYQO}GXQ40JNYI.png
經常數據庫的日期可以看到這么一大坨的數據,這個通常是bigint類型數據。
補充說明下數值類型:
![9MB]{5FCV1)SCT$6Q`(}K2C.png](http://upload-images.jianshu.io/upload_images/711568-3ec1872f0451f518.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
Q1:接下來問題來,如果告訴你要2017-04-05的數據怎么查呢?
正解:
select * from table
where DATE_FORMAT((select from_unixtime(create_time/1000)), '%Y-%m-%d') =DATE_FORMAT('2017-04-05','%Y-%m-%d')
Q2:再如查個20170331到20170401這段時間之間的數據?
select DATE_FORMAT((select FROM_UNIXTIME(create_time/1000)),'%Y-%m-%d %H:%m:%s')
from table
where DATE_FORMAT((SELECT FROM_UNIXTIME(create_time/1000)),'%Y-%m-%d')
BETWEEN DATE_FORMAT('2017-03-31','%Y-%m-%d') and DATE_FORMAT('2017-04-01','%Y-%m-%d')]
這個查法會包含20170401這一整天的數據
如果只要到20170401 00:00:00,那么可以把DATE_FORMAT('2017-04-01','%Y-%m-%d') 換成DATE_FORMAT('2017-03-31','%Y-%m-%d')
或者用另外一種查詢就是先把20170331和20170401兩個日期先用java Date.getTime()得到1490889600000,1490976000000(距1970計算時間)
select DATE_FORMAT((select FROM_UNIXTIME(create_time/1000)),'%Y-%m-%d')
from table where create_time >= '1490889600000' and create_time<'1490976000000'
![Uploading Paste_Image_795345.png . . .]