我想创建会议'表并将EndDate设置为StartDate + ConferenceDays。有什么方法可以做到吗?
create table Conferences(
ConferenceID int not null primary key,
ConferenceName varchar(50) not null,
ConferenceDays int not null,
StartDate date not null,
EndDate date not null,
)
答案 0 :(得分:3)
对于SQL服务器:
create table Conferences(
ConferenceID int not null primary key,
ConferenceName varchar(50) not null,
ConferenceDays int not null,
StartDate date not null,
EndDate AS (dateadd(day,ConferenceDays, StartDate)) PERSISTED
)
答案 1 :(得分:0)
我建议稍微重新思考一下。如果EndDate始终是StartDate + ConferenceDays,那么您基本上拥有冗余数据,这可能被视为违反规范化规则。
如果您正在使用ORM或者您已经定义了一些代表数据表的类,那么我建议添加如下属性:
partial class Conference {
DateTime EndDate { get { return this.StartDate.AddDays( this.ConferenceDays ); } }
... etc.
}
这对你有用吗?