在插入之前验证和比较日期时间
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数字和数据
我有以下情况,我想存储客户 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数字和数据