是否可以在MySQL中自动初始化日期字段?

时间:2017-06-03 23:22:12

标签: mysql sql

所以我想自动初始化一个日期字段(没有时间),然后在两个单独的列中自动初始化一个时间字段(没有日期)(我不希望它们在同一列中)。 ..

这可能吗?

我认为这样可行......但它没有。

CREATE TABLE `account_ip_history` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `uid` int(10) unsigned NOT NULL,
  `ip_address` varchar(39) NOT NULL,
  `created_date` date NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `created_time` time NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8;

1 个答案:

答案 0 :(得分:1)

documentation非常明确:

  

TIMESTAMPDATETIME列可以自动初始化   更新到当前日期和时间(即当前时间戳)。

如果DATE可以初始化,它将包含在文档中。

所以,只需:

CREATE TABLE `account_ip_history` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `uid` int(10) unsigned NOT NULL,
  `ip_address` varchar(39) NOT NULL,
  `created_datetime` datetim NOT NULL DEFAULT CURRENT_TIMESTAMP
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8;

您可以在查询表时提取datetime组件。