CURRENT_TIMESTAMP仍然会导致00:00:00结果

时间:2015-10-19 10:37:46

标签: mysql datetime

我有一个名为“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变量。

2 个答案:

答案 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`)
);