在创建时,可以将2列(开始日、结束日)的天数差存储到同一表中的新列中。这可以通过计算列或者触发器来实现。
CREATE TABLE mytable (
id INT PRIMARY KEY,
start_date DATE,
end_date DATE,
date_diff INT AS (DATEDIFF(end_date, start_date))
);
在这个例子中,新列date_diff存储了开始日和结束日的天数差。
CREATE TABLE mytable (
id INT PRIMARY KEY,
start_date DATE,
end_date DATE,
date_diff INT
);
CREATE TRIGGER calculate_date_diff
ON mytable
AFTER INSERT, UPDATE
AS
BEGIN
UPDATE mytable
SET date_diff = DATEDIFF(day, inserted.start_date, inserted.end_date)
FROM inserted
WHERE mytable.id = inserted.id;
END;
在这个例子中,触发器calculate_date_diff会在插入或更新数据时计算开始日和结束日的天数差,并将结果存储在新列date_diff中。
以上是两种常见的方法来将开始日和结束日的天数差存储到同一表中的新列中。根据具体的数据库管理系统和需求,可能会有一些差异,请根据实际情况选择合适的方法。
领取专属 10元无门槛券
手把手带您无忧上云