我想对日期时间列有不同的结果
i want to have different result for datetime column
我正在使用 sql 服务器,我希望我的 [check out] 列具有与 [check in] 列不同的日期时间。谁能告诉我怎么做?
CREATE TABLE [Contract]
(
RoomID CHAR(4)
FOREIGN KEY REFERENCES dbo.ROOM(RoomID) CHECK(RoomID LIKE '[A-F][1-5][0-9][0-9]' OR RoomID LIKE '[A-F][1-5][0-9][0-9]'),
CustomerID VARCHAR(7)
FOREIGN KEY REFERENCES dbo.customer(CustomerID) CHECK(CustomerID LIKE 'SE[0-9][0-9][0-9][0-9][0-9]' OR CustomerID LIKE 'SB[0-9][0-9][0-9][0-9][0-9]' OR CustomerID LIKE 'HE[0-9][0-9][0-9][0-9][0-9]') NOT NULL,
[Check-in] DATETIME
CHECK([Check-in] <= GETDATE()) NOT NULL,
[Check-out] DATETIME
)
只需使用 CHECK CONSTRAINT
.
ALTER TABLE dbo.Contraint ADD CONSTRAINT chk_CheckInCheckOut CHECK ([Check-out] IS NULL OR [Check-out] != [Check-in])
旁注,我真的建议不要使用需要定界标识的对象名称。连字符 (-
) 不应出现在对象名称中。 Snake_case/CamelCase 是更好的选择。
我正在使用 sql 服务器,我希望我的 [check out] 列具有与 [check in] 列不同的日期时间。谁能告诉我怎么做?
CREATE TABLE [Contract]
(
RoomID CHAR(4)
FOREIGN KEY REFERENCES dbo.ROOM(RoomID) CHECK(RoomID LIKE '[A-F][1-5][0-9][0-9]' OR RoomID LIKE '[A-F][1-5][0-9][0-9]'),
CustomerID VARCHAR(7)
FOREIGN KEY REFERENCES dbo.customer(CustomerID) CHECK(CustomerID LIKE 'SE[0-9][0-9][0-9][0-9][0-9]' OR CustomerID LIKE 'SB[0-9][0-9][0-9][0-9][0-9]' OR CustomerID LIKE 'HE[0-9][0-9][0-9][0-9][0-9]') NOT NULL,
[Check-in] DATETIME
CHECK([Check-in] <= GETDATE()) NOT NULL,
[Check-out] DATETIME
)
只需使用 CHECK CONSTRAINT
.
ALTER TABLE dbo.Contraint ADD CONSTRAINT chk_CheckInCheckOut CHECK ([Check-out] IS NULL OR [Check-out] != [Check-in])
旁注,我真的建议不要使用需要定界标识的对象名称。连字符 (-
) 不应出现在对象名称中。 Snake_case/CamelCase 是更好的选择。