我有一个数据库,它有一个运行良好的NOW()函数,显示正确的日期。在意外删除它之后,我创建了一个类似的数据库,但当我插入NOW()以插入当前日期,它将插入为0000-00-00 00:00:00。
显示的警告是数据在"blog_date"处被截断。现在我不知道如何使用Now()来解决获取当前时间的问题。下面是我的blog_details表、插入命令和错误:
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');
+---------+------+------------------------------------------------+
|级别|代码|消息|
+---------+------+------------------------------------------------+
|警告|1265 |第1行"blog_date"列的数据被截断|
+---------+------+------------------------------------------------+
您插入的是字符串"NOW()"
,它与函数调用NOW()
完全不同。
由于"NOW()"
不是一个有效的日期,因此它为零。
删除其中的引号应该可以解决问题。
您不应该引用NOW()函数,所以尝试不使用",看看这是否有帮助。
INSERT INTO blog_details(title, blog_content, blog_date, cat_name)
VALUES('Breaking Bad TV Series', 'Best series evar', NOW(), 'Uncategorized');
NOW()
函数周围有引号。更改为:
INSERT INTO `blog_details` (`title`, `blog_content`, `blog_date`, `cat_name`)
VALUES('Breaking Bad TV Series', 'Best series evar', NOW(), 'Uncategorized');