2010-07-13 98 views
-1

我有一個表,看起來像這樣: 現場:msg_sent_datetime
類型:日期時間NOW()不更新日期時間?

然而,當我在一個PHP的MySQL插入查詢它留爲全零NOW()使用?

有什麼想法爲什麼?

+8

爲了安全起見,發佈一些代碼可能是個好主意。無論出於何種原因,您(或某個圖書館)都可能引用NOW()表達式。 – timdev 2010-07-13 05:38:12

+0

發佈SQL查詢。如果你正在使用一些包裝或抽象類,在你調用數據庫之前,把var_dump($ sql)放到你正在使用的方法中,以查看它發送到數據庫服務器的SQL是什麼樣的。 – 2010-07-13 06:14:42

回答

0

如果您僅在INSERT時使用它,則可以將該字段設置爲TIMESTAMP並將其設置爲默認值CURRENT_TIMESTAMP

不知道更多關於代碼的信息,很難提出其他建議。

例與CURRENT_TIMESTAMP

CREATE TABLE example (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    msg TEXT, 
    msg_sent_datetime TIMESTAMP DEFAULT CURRENT_TIMESTAMP 
); 

另外,如果你想時,有一個變化的行它來隨時更新,你可以在ON UPDATE CURRENT_TIMESTAMP屬性添加到表定義:

CREATE TABLE example (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    msg TEXT, 
    msg_sent_datetime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 
); 

中當然,所有這一切都完全取決於切換到TIMESTAMP,你可能不想