【问题标题】:MySQL Syntax for setting Default Date用于设置默认日期的 MySQL 语法
【发布时间】:2009-10-30 16:04:27
【问题描述】:

我们如何在 mysql 中将元素设置为某个默认日期?

  • 在 oracle 中我们会做类似的事情

    start_date DATE DEFAULT to__date('01011900','DDMMYYYY')

    mutation_date_time DATE DEFAULT SYSDATE

    CONSTRAINT entity_specification UNIQUE(external_name, start_date_time, end_date_time))

我们也有任何站点或资源,我们可以在其中获得与 Oracle 语法等效的 MySQL 语法。

更新

我尝试按照答案中所述进行操作,但再次收到错误消息:

    create table product_offer_type(object_id INT(19), snapshot_id INT(19), PRIMARY KEY(object_id,snapshot_id), enum_value VARCHAR(64) NOT NULL, external_name VARCHAR(64) NOT NULL, description VARCHAR(255), business_validation INT(1), valid_for_start_date_time DATE DEFAULT '1900-01-10', valid_for_end_date_timeDATE DEFAULT '4712-01-01', mutation_date_time DATE DEFAULT 'SYSDATE()', mutation_user VARCHAR(32) DEFAULT 'USER');
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFAULT '4712-01-01', mutation_date_time DATE DEFAULT 'SYSDATE()', mutation_user' at line 1
mysql>

【问题讨论】:

  • 您在“valid_for_end_date_timeDATE”处漏掉了一个空格。

标签: sql mysql syntax date


【解决方案1】:

只需传递一个格式化的字符串。

start_date DATE DEFAULT '1900-01-01'

【讨论】:

    【解决方案2】:

    对于 DATE 字段中的固定默认日期,格式为“YYYY-MM-DD”,例如start_date DATE DEFAULT '2009-10-30'。 DATETIME 将是 'YYYY-MM-DD HH:MM:SS'。

    对于基于当前日期的动态日期,如果您使用TIMESTAMP 字段,则可以使用DEFAULT CURRENT_TIMESTAMP;否则,不能在 MySQL 中将函数用作 DEFAULT。 TIMESTAMP 字段的格式为“YYYY-MM-DD HH:MM:SS”。否则,您必须在插入数据之前在代码中获取当前日期。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-12
      • 1970-01-01
      • 2014-03-27
      • 1970-01-01
      • 2016-12-20
      • 1970-01-01
      相关资源
      最近更新 更多