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')