时间数据类型 - MySQL

时间:2013-03-27 03:41:27

标签: mysql sql database sqldatatypes

我需要指定日期&创建记录时的记录时间(创建时间)

我尝试使用此语句,但每次收到错误消息时:

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

当我尝试直观地编辑它时,PHPMYSQL显示一条消息,表明字段数据类型已成功更改,但事实并非如此。

底线;我需要知道正确的数据类型/函数,以将字段的值设置为创建时间。

感谢

1 个答案:

答案 0 :(得分: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