gpt4 book ai didi

sql - 如何防止 SQL 中的日期重叠?

转载 作者:行者123 更新时间:2023-12-04 18:48:41 25 4
gpt4 key购买 nike

我有以下租用表的表结构:

hireId int primary key
carId int not null foreign key
onHireDate datetime not null
offHireDate datetime not null

我正在尝试编写一个多用户系统,该系统不允许汽车的租用和停租期重叠。我需要能够按非顺序添加员工。还需要允许编辑招聘。

有什么方法可以限制表格或使用触发器等来防止重叠?我正在使用 Entity Framework ,所以我想像往常一样插入到表中,然后如果它失败抛出一些可捕获的异常等。

最佳答案

CREATE TRIGGER tri_check_date_overlap ON your_table
INSTEAD OF INSERT
AS
BEGIN
IF @@ROWCOUNT = 0
RETURN

-- check for overlaps in table 'INSERTED'
IF EXISTS(
SELECT hireId FROM your_table WHERE
(INSERTED.onHireDate BETWEEN onHireDate AND offHireDate) OR
(INSERTED.offHireDate BETWEEN onHireDate AND offHireDate)
)
BEGIN
-- exception? or do nothing?
END
ELSE
BEGIN
END
END
GO

关于sql - 如何防止 SQL 中的日期重叠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9581458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com