[英]How to use the DATETIME type for a variable?
我想要做的是創建一個變量date_arrived
來存儲客戶預訂酒店房間時的日期和時間值。 然后,我想在表中Insert into
一個日期和時間值。 我能想到的唯一方法是這樣的:
CREATE TABLE Reservation
(
id_reservation SMALLINT IDENTITY(1 ,1) PRIMARY KEY,
date_arrived DATETIME NOT NULL
)
INSERT INTO Reservation
VALUES ( ??? );
但是我看到人們使用帶有@datetime
語法的DATETIME
類型,但我不明白這一點,也不知道它是否適用於我的示例。 我知道使用varchar(n)
不方便。 那么將日期和時間值注冊到變量中的最佳方法是什么?
我認為你混淆了你的要求,聽起來你需要的是:
(您尚未標記您的數據庫,但它看起來像 SQL 服務器語法)
CREATE TABLE Reservation
(
Reservation_Id INT NOT NULL IDENTITY(1 ,1) PRIMARY KEY,
Booking_Date DATETIME NOT NULL default (GETDATE()),
Arrival_Date DATETIME NOT NULL,
Duration TINYINT NOT NULL default(1),
Checkout_Date as DATEADD (day, Duration, Arrival_date)
)
Reservation_Id
會將您鏈接到您的其他預訂數據,例如客人。Booking_Date
是“現在”,即正在預訂,他們預訂的日期 - 這是自動填充的Arrival_Date
是他們預定到達的日期/時間/預留房間等,您填充此Duration
- 多少天/多少夜等Checkout_Date
- 你不填寫這個,它是從 Arrival_Date + Duration 計算出來的您將插入數據,假設您的值作為兩個變量傳遞,
insert into Reservation (Arrival_Date, Duration)
values (@ArrivalDate, @Duration)
select SCOPE_IDENTITY() --< returns the Reservation_Id for use elsewhere.
您可以將值插入為:
Insert into reservation values(now());
在 MySQL 中,您可以使用now()
在表中插入值。
這也可以由數據庫來處理,這里有一個語法。
CREATE TABLE Reservation(id_reservation SMALLINT IDENTITY(1,1) PRIMARY KEY,
date_arrived DATETIME Default now() NOT NULL)
這是一個顯式填充值的示例。
INSERT INTO reservation (id_reservation,date_arrived) VALUES (678,'2020-11-10 11:26:27');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.