我使用PHP使用以下代码在MySQL中输入了一个表:
`DateCreated` datetime NOT NULL,
`DateLastUpdated` datetime NOT NULL,
它不起作用它在日期和时间显示0,我试图找出如何将其更改为CURRENT_DATE()
仅记录日期而没有时间,我该怎么做才能使DateCreated记录提交日期,而DateLastUpdated记录更新日期。这是我的第一个数据库,无法解决这个问题,有人可以帮忙。感谢
答案 0 :(得分:0)
据我所知,您需要使用
TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
。
如果timestamp列定义为NOT NULL
,如果您没有分配值或者值为NULL
答案 1 :(得分:0)
据我所知,您想要一个只有日期的DateCreated
和DateLastUpdated
列?然后,您应该使用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_table
和my_schema
替换为架构和表格的正确名称。
希望这有效。