我有一个数据库,它具有完美的NOW()函数,显示正确的日期。 并且在意外删除它之后,我创建了一个类似的数据库,但是当我插入NOW()插入 当前当前日期时,它会插入为0000-00-00 00:00:00。在datetime数据类型中插入NOW()值会返回0000-00-00 00:00:00
显示的警告是数据在'blog_date'被截断。现在我不知道如何解决这个使用NOW()获取当前时间的问题。下面是我的blog_details表,INSERT命令和错误:
CREATE TABLE `blog_details` (`blog_id` int(11) NOT NULL AUTO_INCREMENT,
`title` char(200) NOT NULL, `blog_content` varchar(2500) NOTNULL,
`blog_date` datetime NOT NULL, `cat_name` varchar(30) NULL,
PRIMARY KEY (`blog_id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
INSERT INTO `blog_details` (`title`, `blog_content`, `blog_date`, `cat_name`)
VALUES('Breaking Bad TV Series', 'Best series evar', 'NOW()', 'Uncategorized');
+---------+------+------------------------------------------------+
| Level | Code | Message |
+---------+------+------------------------------------------------+
| Warning | 1265 | Data truncated for column 'blog_date' at row 1 |
+---------+------+------------------------------------------------+
从'NOW()'中删除引号,否则你会传递*字符串*'“NOW()”'而不是函数。 – 2014-10-06 15:54:53
真的应该在这里使用UTF-8而不是'latin1'。 – tadman 2014-10-06 15:56:38
一个问题是,“坏事”不是“最佳系列evar”。 MySQL显然知道这个荣誉属于“太空堡垒卡拉狄加”。 (笑脸笑容)。 (说真的,你已经把NOW()用单引号括起来,做成了一个字符串文字。删除单引号,它会起作用。) – spencer7593 2014-10-06 15:59:54