今天写sql有个需求,求出活动的状态.例如活动开始时间小于当前时间为未开始
开始时间小于当前时间且结束时间大于当前时间为进行中
结束时间小于当前时间则为结束
查了下资料发现 TIMESTAMPDIFF 函数可以实现
TIMESTAMPDIFF(时间差类型,时间1,时间2) 说明时间差类型:
SECOND 秒 SECONDS
MINUTE 分钟 MINUTES
HOUR 时间 HOURS
DAY 天 DAYS
MONTH 月 MONTHS
YEAR 年 YEARS
返回日期或日期时间表达式 时间1 和 时间2之间的整数差。其结果的
单位由时间差类型参数给出。
时间1,时间2时间格式要相同
SELECT activity_begintime,DATEDIFF(STR_TO_DATE(activity_begintime, '%Y-%m-%d %T'), DATE_FORMAT(NOW(),'%Y-%m-%d %T'))FROM wxactivity
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %T');
SELECT TIMESTAMPDIFF(SECOND,activity_begintime, DATE_FORMAT(NOW(),'%Y-%m-%d %T')) FROM wxactivity;
SELECT TIMESTAMPDIFF(MONTH,'2012-10-01','2009-10-01');
ok 可以实现效果