Firebird

如何設置一個列來獲取現在的日期?

  • April 21, 2013

嗨,我有一個名為 datenow 的範例表,並使用以下內容在 Flamerobin 上創建了我的表,以便在添加條目時有一列自動獲取今天的日期。

CREATE TABLE "DATENOW"
(
 ID Char(8) NOT NULL,
 "Start_Date" Char(10),
 "Client_Name" Varchar(30),
 BALANCE Integer,
 select cast('Now' as date) from rdb$database
 CONSTRAINT PK_datenow PRIMARY KEY (ID)
);

GRANT DELETE, INSERT, REFERENCES, SELECT, UPDATE
ON "datenow" TO  SYSDBA WITH GRANT OPTION;

還嘗試插入這些 sql 語句

select date 'Now' from rdb$database
select time 'now' from rdb$database
select timestamp 'NOW' from rdb$database

但我無法生成表,也無法確定我將把 sql 語句放在哪里或做什麼才能讓一列自動獲取今天的日期

像這樣?

CREATE TABLE "DATENOW"
(
 ID Char(8) NOT NULL,
 "Start_Date" Char(10),
 "Client_Name" Varchar(30),
 BALANCE Integer,
 Now_Column TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
 CONSTRAINT PK_datenow PRIMARY KEY (ID)
);

如果您INSERT進入表,並省略Now_Column(IE: it’s NULL) 的值,則將使用目前時間戳。

此外,永遠不要使用CHAR/VARCHAR數據類型來保存日期(我懷疑您正在嘗試使用您的Start_Date列) - 使用正確的日期數據類型。

順便說一句,未經測試 - 這是來自文件

引用自:https://dba.stackexchange.com/questions/40556