我需要指定日期&创建记录时的记录时间(创建时间)
我尝试使用此语句,但每次收到错误消息时:
'OrderDate' DATE DEFAULT (GETDATE()) NOT NULL,
当我尝试直观地编辑它时,PHPMYSQL显示一条消息,表明字段数据类型已成功更改,但事实并非如此。
底线;我需要知道正确的数据类型/函数,以将字段的值设置为创建时间。
感谢
答案 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