2013-03-27 55 views
0

我需要&時間指定日期(創建時)時間數據類型 - MySQL的

我試圖用這個語句,但每次我收到一條錯誤消息時創建的記錄的記錄,:

'OrderDate' DATE DEFAULT (GETDATE()) NOT NULL, 

當我試圖直觀地編輯它時,PHPMYSQL顯示一條消息,表明字段數據類型已成功更改,但事實並非如此。

底線;我需要知道正確的數據類型/函數以將字段的值設置爲創建時間。

感謝

+1

您可以使用時間戳像** COL_NAME TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ** – Dhinakar 2013-03-27 03:46:04

+1

我不認爲他想訂購日期一旦創建了創紀錄的改變,所以'ON UPDATE CURRENT_TIMESTAMP'不宜使用。 – 2013-03-27 03:51:07

+0

@RossSmithII我同意。我只給出了一般的語法。 – Dhinakar 2013-03-27 03:56:05

回答

1

爲了得到一個字段記錄時創建使用自動設置日期:

OrderDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL; 

的MySQL 5.6之前,如果你需要一個DATETIME字段類型爲自動初始化,然後你可以定義爲OrderDate

OrderDate DATETIME DEFAULT 0 NOT NULL; 

,並使用TRIGGER指定日期:

DROP TRIGGER IF EXISTS atable_insert_before; 

DELIMITER // 

CREATE 
TRIGGER atable_insert_before 
    BEFORE INSERT ON 
     atable 
    FOR EACH ROW 
BEGIN 
    IF IFNULL(NEW.OrderDate, 0) <= 0 
    THEN 
     SET NEW.OrderDate = NOW(); 
    END IF; 
END; 
// 

DELIMITER ; 

使用MySQL 5.6,DATETIME字段可以自動初始化爲TIMESTAMP現在可以執行此操作。見http://dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.html