2014-10-06 30 views
0

我有一個數據庫,它具有完美的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 |
+---------+------+------------------------------------------------+

+1

從'NOW()'中刪除引號,否則你會傳遞*字符串*'「NOW()」'而不是函數。 – 2014-10-06 15:54:53

+0

真的應該在這裏使用UTF-8而不是'latin1'。 – tadman 2014-10-06 15:56:38

+1

一個問題是,「壞事」不是「最佳系列evar」。 MySQL顯然知道這個榮譽屬於「太空堡壘卡拉狄加」。 (笑臉笑容)。 (說真的,你已經把NOW()用單引號括起來,做成了一個字符串文字。刪除單引號,它會起作用。) – spencer7593 2014-10-06 15:59:54

回答

4

什麼你將是字符串"NOW()"這是從函數調用NOW()完全不同。因爲"NOW()"不是有效日期,所以它爲零。

從中刪除引號可以解決問題。

0

你不應該引述NOW()函數,所以儘量不',看看有沒有什麼幫助。

INSERT INTO blog_details(title, blog_content, blog_date, cat_name) 
VALUES('Breaking Bad TV Series', 'Best series evar', NOW(), 'Uncategorized'); 
0

您在NOW()函數附近有引號。將其更改爲:

INSERT INTO `blog_details` (`title`, `blog_content`, `blog_date`, `cat_name`) 
VALUES('Breaking Bad TV Series', 'Best series evar', NOW(), 'Uncategorized'); 
相關問題