在插入之前验证和比较日期时间

Validate and compare datetime before inserting

我有以下情况,我想存储客户 phone 号码,以便在 4 小时内仅回拨一次,从某种意义上说,如果客户在 4 小时内一次又一次地请求回拨,那么系统将检查数据库中是否已创建请求,如果是则不创建请求,否则创建回调。

请注意,我使用的是这种格式的 datetime 列“2021-03-14 23:50:34.263”

我使用了下面的,但它只验证了手机号码:

INSERT INTO AppointmentsList(mobileNo)
SELECT 'mobileNo'
WHERE NOT EXISTS (
    SELECT mobileNo
    FROM AppointmentsList
    WHERE mobileNo = 'mobileNo'
)

如有任何见解,我们将不胜感激。

我认为 MERGE 语句适合这里

您可能需要尝试使用日期格式,但我会尽量使这个想法清晰

merge into AppointmentsList al
using(select '+123456' mobileNo, '20210314 10:00:00 AM' some_date) new_data
   on al.mobileNo = new_data.mobileNo 
  and datediff(hour, new_data.some_date, al.some_date) < 4
when not matched then insert(mobileNo, some_date) 
                      values(new_data.mobileNo, new_data.some_date);

只需在“new_data”子查询

中传递新的phone数字和数据