簡體   English   中英

如何將 DATETIME 類型用於變量?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM