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')
喜欢请赞赏一下啦^_^
微信赞赏
支付宝赞赏