MySQL修改日期时间设置小时和分钟而不修改月,年和日

wma*_*but 2 mysql

我有一个带有DateTime列的数据库,我想修改小时和分钟而不涉及任何其他内容.我不能只添加一个区间b/c所有不同的值.

例如

*************************************************
** What I've got       *|* What I want         **
************************|************************
** 2012-10-01 10:01:01 *|* 2012-10-01 23:59:59 **
** 2012-08-03 13:09:01 *|* 2012-08-03 23:59:59 **
** 2012-05-10 09:00:01 *|* 2012-05-10 23:59:59 **
** 2012-03-20 20:01:01 *|* 2012-03-20 23:59:59 **
*************************************************
Run Code Online (Sandbox Code Playgroud)

有没有办法从查询中执行此操作而不必涉及其他编程语言?

Mik*_*ant 10

是的,你可以很容易地做到这一点:

UPDATE tablename SET columnname = CONCAT_WS(' ', DATE(columname), '23:59:59')
Run Code Online (Sandbox Code Playgroud)

  • 是的,完全没有必要。我真的用它来证明可以使用类似CONCAT的语句一对一地替换时间分量。可能还需要更多的虚拟证明,因为在时间成分之前添加前导空间很容易被忽略。也可以完成`CONCAT(DATE(columnname),'','23:59:59')` (2认同)

dou*_*arp 5

您可以date_column在提取DATE()列的当前值后将设置为字符串。

UPDATE `table` SET `date_column` = CONCAT(DATE(`date_column`), ' 23:59:59')
Run Code Online (Sandbox Code Playgroud)