0

我需要在创建记录时为记录分配日期和时间,(创建时间)

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

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

当我尝试对其进行可视化编辑时,PHPMYSQL 显示字段数据类型已成功更改的消息,但事实并非如此。

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

谢谢

4

1 回答 1

1

要获取自动设置记录创建日期的字段,请使用:

OrderDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;

在 MySQL 5.6 之前,如果你需要一个DATETIME字段类型来自动初始化,那么你可以定义你的OrderDateas

OrderDate DATETIME DEFAULT 0 NOT NULL;

并使用 aTRIGGER分配日期:

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

于 2013-03-27T03:46:42.323 回答