使用default 0000-00-00创建Mysql datetime列

时间:2013-02-07 17:43:54

标签: mysql sql datetime

我想用这样的列创建一个表。

CREATE  TABLE `user_gender` (
  `user_gender_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT ,
  `user_gender_title` VARCHAR(100) NOT NULL ,
  `user_gender_modified_on` DATETIME NOT NULL DEFAULT 0000-00-00 00:00:00 ,
  `user_gender_created_on` DATETIME NOT NULL DEFAULT 0000-00-00 00:00:00 ,
  PRIMARY KEY (`user_gender_id`) )
ENGINE = InnoDB;

但似乎默认的0000-00-00不能在mysql中工作。但是我从joomla数据库模型中模仿它,所以我很确定它应该正常工作。但我的phpadmin一直说在-00-00中存在语法错误。任何人都能解释一下吗?

3 个答案:

答案 0 :(得分:2)

尝试将drefault值放在引号中:

CREATE  TABLE `user_gender` (
  `user_gender_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT ,
  `user_gender_title` VARCHAR(100) NOT NULL ,
  `user_gender_modified_on` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' ,
  `user_gender_created_on` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' ,
  PRIMARY KEY (`user_gender_id`) )
ENGINE = InnoDB;

答案 1 :(得分:1)

您缺少默认值的引号。

CREATE  TABLE `user_gender` (
`user_gender_id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT ,
`user_gender_title` VARCHAR(100) NOT NULL ,
`user_gender_modified_on` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' ,
`user_gender_created_on` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' ,
PRIMARY KEY (`user_gender_id`) )
ENGINE = InnoDB;

答案 2 :(得分:0)

这似乎已被MySQL 5.5破坏。我最近升级并破坏了一个依赖于00:00:00&00; 00的结果的应用程序。在特定实例中设置。它以前总是有效,但不再是唯一的变化是平台版本更新。