mysql 時間戳 今天 昨天 7天 30天 及未來時間


MYSQL部分:

時間戳轉成日期格式 from_unixtime(時間字段名);

今天

select * from 表名 where to_days(時間字段名) = to_days(now());

昨天

SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 時間字段名) <= 1 

7天

SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(時間字段名)

近30天

SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(時間字段名)
30天之前的

SELECT* FROM_UNIXTIME(created/1000) FROM 表名  WHERE DATEDIFF ( DATE_FORMAT( NOW( ) , '%Y%m%d' ) , DATE_FORMAT( FROM_UNIXTIME(時間字段名), '%Y%m%d' ) ) >30 本月
SELECT * FROM 表名 WHERE DATE_FORMAT( 時間字段名, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' ) 上一月 SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( 時間字段名, '%Y%m' ) ) =1

三個月之前

SELECT FROM_UNIXTIME(created/1000) FROM `device_light_history`  WHERE PERIOD_DIFF( DATE_FORMAT( NOW( ) , '%Y%m' ) , DATE_FORMAT( FROM_UNIXTIME(created/1000), '%Y%m' ) ) >1

 實際應用

where to_days(from_unixtime(字段))=to_days(now())   今天

where to_days(now()) - to_days(from_unixtime(字段))=1  昨天

where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(from_unixtime(字段))  最近7天

where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(from_unixtime(字段)) 最近30天

未來30天的記錄

SELECT * 
FROM `islet_labappointment` 
WHERE DATE( FROM_UNIXTIME( `字段名稱` ) ) > DATE_SUB( CURDATE( ) , INTERVAL 30 
DAY ) 
LIMIT 0 , 30

 

mysql時間戳timestamp,查詢轉日期類型

#獲取時間戳

SELECT CURRENT_TIMESTAMP(1);

SELECT CURRENT_TIMESTAMP(3);

#先格式化,然后轉為時間格式

SELECT STR_TO_DATE(DATE_FORMAT(CURRENT_TIMESTAMP(1), '%Y-%c-%d %h:%i:%s' ) ,'%Y-%m-%d %H:%i:%s'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM