admin

将当前日期或时间插入MySQL

sql

如果我创建一个带有假定为存在的实体的表,DATE并且当我Insert将该列留空时,它是否不显示当前日期?时间一样吗?

例如…

CREATE TABLE Register
(
Name CHAR(20) NOT NULL,
Date DATE,
Time TIME
);

然后我插入:

INSERT INTO Register (Name)
VALUES ('Howard');

我希望它显示在桌子上:

Howard | 5/6/2014 | 8:30 PM

但是,它显示:

Howard | NULL | NULL

这是不正确的Insert吗?如果可以的话,我应该怎么做才能显示当前的插入日期和时间?


阅读 151

收藏
2021-06-07

共1个答案

admin

首先 ,您PRIMARY KEY的表中应该有一个。

其次 ,您尚未设置列Date和的默认值Time。此外,您不能为DATETIME类型分别设置它们-
您应该使用TIMESTAMPtype和DEFAULT CURRENT_TIMESTAMPlike:

 CREATE TABLE Register (
    Name CHAR(20) PRIMARY KEY NOT NULL,
    Date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
 );

第三 ,如果要使用两列来存储日期,则可以INSERT为此表设置事件触发,如下所示:

 CREATE TRIGGER default_date_time
 BEFORE INSERT ON my_table_name
 FOR EACH ROW
 BEGIN
    SET NEW.Date = CURDATE();
    SET NEW.Time = CURTIME();
 END;
 $$
2021-06-07