You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用SQL计算日期差并筛选入住超2天的酒店客户信息

1. 如何在SQL中计算两个日期之间的差值?

不同SQL数据库计算日期差的函数存在差异,常见实现方式如下:

  • MySQL/MariaDB:使用DATEDIFF(end_date, start_date),返回两个日期的天数差值
    示例:SELECT DATEDIFF('2024-05-10', '2024-05-01'); 结果为9
  • SQL Server:使用DATEDIFF(interval, start_date, end_date),需指定计算间隔(如day、month)
    示例:SELECT DATEDIFF(day, '2024-05-01', '2024-05-10'); 结果为9
  • Oracle:直接通过日期相减得到天数差,或用MONTHS_BETWEEN计算月份差
    示例:SELECT TO_DATE('10-MAY-2024', 'DD-MON-YYYY') - TO_DATE('01-MAY-2024', 'DD-MON-YYYY') FROM DUAL; 结果为9
2. 查询入住时长超过2天的酒店客户详细记录

表结构

Rooms表

arrivalcheckoutroomid
2/2/20042/3/200401
2/2/20042/3/200402

Customer表

cust nameroom id
raj01
rohan02

解决方案SQL语句

以MySQL为例,关联两张表并筛选入住时长符合条件的记录:

SELECT 
    c.`cust name`,
    r.arrival,
    r.checkout,
    r.roomid AS `room id`
FROM 
    Rooms r
JOIN 
    Customer c ON r.roomid = c.`room id`
WHERE 
    DATEDIFF(r.checkout, r.arrival) > 2;

若使用其他数据库,需替换对应日期差函数,比如SQL Server可改为DATEDIFF(day, r.arrival, r.checkout) > 2

预期输出

cust namearrivalcheckoutroom id
rohan2/2/20042/3/200402

内容的提问来源于stack exchange,提问作者Dhruvil Kundaliya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 22:35:38