SQL 服务器 - 计算日期列
SQL Server - computed date column
我想创建 'Conferences' table 并将 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,
)
对于 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
)
我建议重新考虑一下。如果 EndDate 始终是 StartDate + ConferenceDays,那么您实际上拥有冗余数据,这可能被视为违反规范化规则。
如果您使用的是 ORM 或者您已经定义了一些代表数据 table 的 class,那么我建议添加一个 属性,如下所示:
partial class Conference {
DateTime EndDate { get { return this.StartDate.AddDays( this.ConferenceDays ); } }
... etc.
}
这对你有用吗?
我想创建 'Conferences' table 并将 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,
)
对于 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
)
我建议重新考虑一下。如果 EndDate 始终是 StartDate + ConferenceDays,那么您实际上拥有冗余数据,这可能被视为违反规范化规则。
如果您使用的是 ORM 或者您已经定义了一些代表数据 table 的 class,那么我建议添加一个 属性,如下所示:
partial class Conference {
DateTime EndDate { get { return this.StartDate.AddDays( this.ConferenceDays ); } }
... etc.
}
这对你有用吗?