MySQL插入当前日期,仅在插入时。

5
这是表格结构:
id             int
name           varchar
insert_date    date
update_date    TIMESTAMP

现在的想法是,insert_date将默认插入当前时间,而update_date将在每次编辑或插入时插入当前时间并更新它。

那么,我该如何使(insert_date)的默认值为当前时间和日期,但在更新时不更改(insert_date)的值?如果我将其保留为TIMESTAMP,则会更改。

insert_date -- 只在插入时插入当前时间

祝好

5个回答

4
如果您只想添加时间,您需要使用CURTIME()函数。如果您想要当前日期和时间,则需要使用NOW()函数。如果您只想要当前日期,则需要使用CURDATE()函数。有关更多信息,请参考以下SELECT语句:SELECT NOW(),CURDATE(),CURTIME()。结果类似于以下格式:NOW() CURDATE() CURTIME() 2008-11-11 12:45:34 2008-11-11 12:45:34。请选择所需格式。

2

插入时使用DEFAULT CURRENT_TIMESTAMP

更新时使用ON UPDATE CURRENT_TIMESTAMP

示例如下

CREATE TABLE IF NOT EXISTS `datetest` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(100) NOT NULL,
      `timestamps_updated` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
      `timestamps_inserted` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' DEFAULT CURRENT_TIMESTAMP,

      PRIMARY KEY (`id`)
    ) 

我收到了错误 #1067 - 'timestamps_updated' 的无效默认值。 - Lu Blue

1
如果您想保持默认的当前日期和时间,您需要更改。
insert_date data type date to datetime

并插入类似

Insert into tbl(insert_date) values(now())

或者

$date=date('Y-m-d H:i:s')

Insert into tbl(insert_date) values('$date')

或者

阅读它

如何为MySQL Datetime列设置默认值?


0

如果您想储存日期和时间,请使用DATETIME类型,您可以选择将CURRENT_TIMESTAMP作为默认值或使用NOW()获取当前日期和时间(yyyy-mm-dd 小时:分钟:秒)。


-1

你可以在相应的字段中使用NOW()函数


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接