如果我创建的表带有一个假定为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 ,使当前的日期和插入的时间才能显示?

===============>>#1 票数:5 已采纳

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

其次 ,您尚未为DateTime列设置默认值。 另外,您不能为DATETIME类型分别设置它们-您应该使用TIMESTAMP类型和DEFAULT CURRENT_TIMESTAMP例如:

 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;
 $$

===============>>#2 票数:2

您需要设置一个默认值。 因此,您可能认为您可以这样做:

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

但这行不通。 您需要使用CURRENT_TIMESTAMP并更改数据库结构以使用组合的TIMESTAMP格式:

CREATE TABLE Register
(
Name CHAR(20) NOT NULL,
Timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

原因是仅DATETIME就没有MySQL DEFAULT值。 有关此行为的一些线索:

数据类型规范中的DEFAULT value子句指示列的默认值。 除一个例外,默认值必须 为常量; 它不能是函数或表达式。 例如,这意味着您不能将日期列的默认值设置为诸如NOW()或CURRENT_DATE之类的函数的值。 唯一的例外 是您可以将CURRENT_TIMESTAMP指定为 TIMESTAMP列 的默认值 请参见第11.3.5节“ TIMESTAMP的自动初始化和更新”。

===============>>#3 票数:2

这里有两个选择:

  1. 摆脱DateTime列并添加time stamp

    INSERT INTO Register (Name,Ctime) VALUES ('Howard',CURRENT_TIMESTAMP);

  2. 如果要继续表结构

    INSERT INTO Register (Name, Date , Time ) VALUES ('Howard',CURDATE(), CURTIME());

还要注意, datetime是MySQL的保留字,因此应加反引号,以避免与保留字冲突。 或者只是根据table name格式对其进行重命名。

  ask by user2318083 translate from so

未解决问题?本站智能推荐:

1回复

插入当前日期和特定时间MySQL

我正在尝试将当前日期和特定时间插入表中,这是我的查询 这是我桌子上的输出 表
5回复

mysql插入当前日期,仅在插入时间内

这是表结构, 现在这里的idia是, insert_date将能够通过defult当前时间和update_date插入它将在每次编辑中插入当前时间或插入它将更新它。 所以我如何将(insert_date)默认值设置为当前时间和日期但是在更新时它不应该更改(insert_date)的
4回复

在MySQL表中默认插入当前日期

我使用上面的查询来插入表值。在这个表变量yourDate中具有当前系统日期,然后从表分组中复制数据。没有yourDate变量查询可以正常工作,并将值从分组表插入到groupperformance表中。我将插入当前日期作为默认值。
10回复

如何获取MySQL的当前日期和时间?

是否有像DATETIME这样的值或命令,我可以在手动查询中使用它来插入当前日期和时间? 最后引用的DATETIME值是我想要添加当前日期和时间的位置。
3回复

SQL查询,插入当前日期但不插入当前时间

我正在尝试在其中进行sql查询,但我想插入当天,但每天都在同一时间插入,但是此代码无法正常工作。 数据库中的字段为datetime。 此代码的输出是0000-00-00 00:00:00。 如果我更改为: 然后结果是2016-10-30 00:00:00,所以时间一定有问题。
4回复

MySQL当前日期

我想让用户可以在个人资料页面上看到他们今天的图片。 它是否正确? 还是行不通。 谢谢您的帮助。
1回复

将当前日期插入表格

我想将当前日期从php页面插入表中,但我不知道该怎么做。 我也想知道我是否正在使用要使用的数据类型构造表。 它是正常的“日期”数据类型。 谢谢!!
2回复

将数据时间字段与MySQL中的当前日期时间进行比较

我有类似的东西: 它可以工作,但我不是比较时间来比较时间。 有类似的功能吗?
1回复

在MySQL中将默认值作为当前日期+ 30天插入

如何使列的默认值等于MySQL当前日期+ 30天? 例如,如果当前日期为10-1-2011,则必须将列值插入为9-2-2011。
1回复

MySQL以时间获取当前日期23:59:59

如果我执行 这将给出当前日期。 如果我必须通过23:59:59来获取当前日期,那将是一天的结束。 在我使用的SQL Server中