我需要在创建记录时为记录分配日期和时间,(创建时间)
我尝试使用此语句,但每次收到错误消息时:
'OrderDate' DATE DEFAULT (GETDATE()) NOT NULL,
当我尝试对其进行可视化编辑时,PHPMYSQL 显示字段数据类型已成功更改的消息,但事实并非如此。
底线;我需要知道正确的数据类型/函数来将字段的值设置为创建时间。
谢谢
我需要在创建记录时为记录分配日期和时间,(创建时间)
我尝试使用此语句,但每次收到错误消息时:
'OrderDate' DATE DEFAULT (GETDATE()) NOT NULL,
当我尝试对其进行可视化编辑时,PHPMYSQL 显示字段数据类型已成功更改的消息,但事实并非如此。
底线;我需要知道正确的数据类型/函数来将字段的值设置为创建时间。
谢谢
要获取自动设置记录创建日期的字段,请使用:
OrderDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;
在 MySQL 5.6 之前,如果你需要一个DATETIME
字段类型来自动初始化,那么你可以定义你的OrderDate
as
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