【发布时间】:2017-07-04 06:32:17
【问题描述】:
我想更新一个 DateTime 列,它只会更改时间而不修改其他任何内容。我不能用来添加间隔,因为值都不同。也有许多不同的日期。因此需要将确切所需日期的时间更改为 where 条件。
例如:
*************************************************
** Before *|* After **
************************|************************
** 2017-07-24 19:06:15 *|* 2017-07-24 15:06:15 **
** 2017-07-24 17:12:23 *|* 2017-07-24 15:12:23 **
** 2017-07-24 23:00:03 *|* 2017-07-24 15:00:03 **
** 2017-07-24 20:33:56 *|* 2017-07-24 15:33:56 **
** 2017-07-24 18:19:31 *|* 2017-07-24 15:19:31 **
** 2017-07-24 16:43:47 *|* 2017-07-24 15:43:47 **
*************************************************
希望只使用 MySQL 查询而不使用任何编程语言。
【问题讨论】:
-
新的一小时从何而来?
-
@Barmar 它可能来自参数。很高兴看看他到目前为止尝试了什么 sql
-
使用字符串连接将新的小时合并为一个格式字符串,您可以与
DATE_FORMAT()一起使用。 -
如果要直接更新数据,只需使用子字符串即可。如果您总是为小时指定一个两位数的值,这将起作用。例如更新 schema_name.table_name set substring(date_field,12,2)=new_hour where date_field=where_condition。如果这是您要找的,请现在告诉我,我会添加答案
标签: mysql sql datetime hour date-manipulation