在datetime字段中设置当前日期

8

MySQL表中有一个日期时间字段:

`mytime` datetime

它包含像“2012-02-10 10:15”这样的条目。

如何将日期部分设置为当前日期?


1
尝试使用 now() 函数,它表示当前时间戳。 - Hussain
@HussainTamboli 这将同时更新时间部分。 - Oskar Persson
可能是 https://dev59.com/iHM_5IYBdhLWcg3w-4nw?rq=1 的重复问题。 - Bharath Mg
7个回答

14

您可以使用 -

update table tblName set mytime = current_date()

或者

update table tblName set mytime =concat(current_date(),' ',TIME(mytime))

这个语句把时间部分设为00:00:00。 - You Kuper
@YouKuper 添加了可选查询,您可以使用它。 - Suresh Kamrushi
在第1行的'mytime'列中,日期时间值'2013-01-0721:15:00'不正确。 - You Kuper
1
这个可以工作。更新时间表设置mytime = concat(current_date(), ' ', TIME(mytime))。 - You Kuper
1
@JohnCruz 抱歉打错字了。 - Suresh Kamrushi

5
请使用以下查询语句...
update Table1 set mytime=now();

2
UPDATE Table1
SET mytime = CONCAT_WS(' ',CURDATE(), TIME(myTime))

2
UPDATE table SET mytime = CONCAT(CURDATE(), ' ' , time(mytime)) WHERE id = row;

我认为这个方法可以行得通,我的语法可能有些问题。 time(mytime) 可能会给出 hour:minute:seconds ,而你只需要 hour:minute。我认为你还需要在其中加入 ' ' 以便MySQL能够识别时间格式。


0

假设你的表格如下所示

CREATE TABLE `table66` (
    `id` INT(10) NULL DEFAULT NULL,
    `mytime` DATETIME NULL DEFAULT NULL
)

然后,您可以使用以下查询来更新您的mytime列

update table66 set mytime=concat(date(now()),' ',time(mytime) ) 

0
UPDATE test
SET mytime = mytime + INTERVAL DATEDIFF(CURRENT_DATE(),DATE(mytime)) DAY  ;

0
问题比较模糊,但在谷歌搜索中排名靠前。
通常只需使用now()将日期时间列设置为当前日期和时间。无论是插入、更新还是触发器都没关系。
这里有几个答案没有where子句的更新。大多数更新都会有一个where子句,以免影响整个表。

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