复杂的MySQL 时间查询语句解析

来源:互联网 发布:移动硬盘 知乎 编辑:程序博客网 时间:2024/05/16 15:20

SELECT  a.* FROM luck_conf a WHERE a.`room_id`=? AND a.`conf_status`=1 AND TIMESTAMPDIFF(SECOND,DATE_FORMAT(NOW(),'%Y-%c-%d %H:%i:%s'),DATE_ADD(a.`start_time`,INTERVAL a.`show_time` DAY_MINUTE))>0 ORDER BY ABS(TIMESTAMPDIFF(SECOND,DATE_FORMAT(NOW(),'%Y-%c-%d %H:%i:%s'),a.`start_time`)) ASC LIMIT 2;

这是一条实际项目的sql语句,为了查询出最近两条待开始的活动

DATE_ADD(a.`start_time`,INTERVAL a.`show_time` DAY_MINUTE),开始时间加上活动时间,算出活动结束时间

TIMESTAMPDIFF(SECOND,DATE_FORMAT(NOW(),'%Y-%c-%d %H:%i:%s'),DATE_ADD(a.`start_time`,INTERVAL a.`show_time` DAY_MINUTE)) 活动结束时间减去当前时间,就是这个正反顺序

ABS(TIMESTAMPDIFF(SECOND,DATE_FORMAT(NOW(),'%Y-%c-%d %H:%i:%s'),a.`start_time`))  开始时间减去当前时间的绝对值


0 0
原创粉丝点击