日期创建日期和上次更新mysql的日期

时间:2016-09-21 12:16:08

标签: php mysql database phpmyadmin

我使用PHP使用以下代码在MySQL中输入了一个表:

`DateCreated` datetime NOT NULL,
`DateLastUpdated` datetime NOT NULL,

它不起作用它在日期和时间显示0,我试图找出如何将其更改为CURRENT_DATE()仅记录日期而没有时间,我该怎么做才能使DateCreated记录提交日期,而DateLastUpdated记录更新日期。这是我的第一个数据库,无法解决这个问题,有人可以帮忙。感谢

2 个答案:

答案 0 :(得分:0)

据我所知,您需要使用

TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

如果timestamp列定义为NOT NULL,如果您没有分配值或者值为NULL

,MySQL会将当前时间戳存储在列中

答案 1 :(得分:0)

据我所知,您想要一个只有日期的DateCreatedDateLastUpdated列?然后,您应该使用date作为列的类型。 datetime始终包含时间。

完成后,您可以使用CURRENT_DATE()方法作为DateCreated列的默认值。

对于DateLastUpdated,您需要一个触发器,如下所示:

DELIMITER $$

DROP TRIGGER IF EXISTS new_schema.my_table_BEFORE_UPDATE$$
USE `my_schema`$$
CREATE DEFINER = CURRENT_USER TRIGGER `my_schema`.`my_table_BEFORE_UPDATE` BEFORE UPDATE ON `my_table` FOR EACH ROW
BEGIN
    SET NEW.DateLastUpdated = CURRENT_DATE();
END$$
DELIMITER ;

您需要将my_tablemy_schema替换为架构和表格的正确名称。

希望这有效。