-- 个人理解:从6月12日开始 连续入住多晚的客户 SELECT c.user_id ,c.room_id ,g.room_type ,DATEDIFF(checkout_time, checkin_time) AS days FROM checkin_tb c INNER JOIN guestroom_tb g ON c.room_id = g.room_id WHERE c.checkin_time LIKE '%06-12%' -- 从6月12日开始 AND DATEDIFF(checkout_time, checkin_time) >= 2 -- 连续入住多晚 GROUP BY c.user_id ,c.room_id ,g.room_type ,DATEDIFF(checkout_time, checkin_time) ORDER BY days ASC, c.room_id ASC, c.user_id DESC -- 提交代码时,需要排序 ;
datediff():计算两个日期之间差;只计算日期部分的差异,不计算时间部分
SELECT DATEDIFF('2024-08-23', '2024-08-20'); -- 输出: 3 SELECT DATEDIFF('2024-08-23 15:30:45', '2024-08-20 10:00:00'); -- 输出: 3
END