如何设置一列以立即获取日期?

Chu*_*unk 2 firebird

嗨,我有一个名为 datenow 的示例表,并使用以下内容在弗拉罗宾上创建我的表,以便在添加条目时自动获取今天的日期。

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;
Run Code Online (Sandbox Code Playgroud)

还尝试插入这些 sql 语句

select date 'Now' from rdb$database
select time 'now' from rdb$database
select timestamp 'NOW' from rdb$database
Run Code Online (Sandbox Code Playgroud)

但我无法生成表,也无法确定将 sql 语句放在哪里或要做什么才能获得今天自动获取日期的列

Phi*_*lᵀᴹ 8

像这样?

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)
);
Run Code Online (Sandbox Code Playgroud)

如果您INSERT进入该表,并省略Now_Column(IE: it's NULL) 的值,则将使用当前时间戳。

另外,永远不要使用CHAR/VARCHAR数据类型来保存日期(我怀疑您正在尝试使用您的Start_Date列) - 使用正确的日期数据类型。

顺便说一下,未经测试 - 这是来自文档