0
我需要&时间指定日期(创建时)时间数据类型 - MySQL的
我试图用这个语句,但每次我收到一条错误消息时创建的记录的记录,:
'OrderDate' DATE DEFAULT (GETDATE()) NOT NULL,
当我试图直观地编辑它时,PHPMYSQL显示一条消息,表明字段数据类型已成功更改,但事实并非如此。
底线;我需要知道正确的数据类型/函数以将字段的值设置为创建时间。
感谢
我需要&时间指定日期(创建时)时间数据类型 - MySQL的
我试图用这个语句,但每次我收到一条错误消息时创建的记录的记录,:
'OrderDate' DATE DEFAULT (GETDATE()) NOT NULL,
当我试图直观地编辑它时,PHPMYSQL显示一条消息,表明字段数据类型已成功更改,但事实并非如此。
底线;我需要知道正确的数据类型/函数以将字段的值设置为创建时间。
感谢
为了得到一个字段记录时创建使用自动设置日期:
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
您可以使用时间戳像** COL_NAME TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ** – Dhinakar 2013-03-27 03:46:04
我不认为他想订购日期一旦创建了创纪录的改变,所以'ON UPDATE CURRENT_TIMESTAMP'不宜使用。 – 2013-03-27 03:51:07
@RossSmithII我同意。我只给出了一般的语法。 – Dhinakar 2013-03-27 03:56:05