我有一个名为“Date”的表(实际上是它的“Datum,它是”Date“的荷兰语),我想在添加记录时自动给出一个值。但它似乎不起作用。无论我做什么,它仍然填写00:00:00。
我试图改变表格:
ALTER TABLE article CHANGE Datum
Datum TIMESTAMP NOT NULL DEFAULT NOW()
ON UPDATE NOW()
这没用,所以我试过了:
ALTER TABLE article CHANGE Datum
Datum TIMESTAMP NOT NULL
DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP
哪个也没用。我使用的插入查询:
"INSERT INTO artikelen(Articleid, Title, Article, Date, Type, author) values ('', '$Title', '$Article', '', '$Type', '$author')")
是的,它使用PHP变量。
答案 0 :(得分:1)
如果已将日期列设置为默认值,则无需指定日期列。尝试这样(日期列设置为默认CURRENT_TIMESTAMP被删除):
"INSERT INTO artikelen(Articleid, Title, Article, Type, author) values ('', '$Title', '$Article', '$Type', '$author')")
<强> DEMO 强>
答案 1 :(得分:0)
它还不完全清楚你在做什么。您使用专栏&#39; Datum&#39;在您的表格中,您在PHP中引用了&#39;日期&#39;。假设你的意思相同,下面的定义应该有效。 但是,如果在SQL语句中为日期列添加空值(我的情况为my_date),则不会触发更新。因此,请确保忽略 INSERT / UPDATE语句中的列。
使用CURRENT_TIMESTAMP,如下所示:
CREATE TABLE `test` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`my_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
);