2013-03-27 74 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