【问题标题】:Update only the time portion of a MySQL TIMESTAMP仅更新 MySQL TIMESTAMP 的时间部分
【发布时间】:2011-08-13 20:03:44
【问题描述】:

我有一个 TIMESTAMP 列,其中包含:

2011-10-12 12:00:00

现在我希望能够接受用户输入来仅更改时间,而不是日期。因此,如果用户输入5:00 pm 我首先将输入转换为17:00:00,那么我的问题是将时间戳更新为2011-10-12 17:00:00 而不会覆盖日期。用户可以选择任何时间,但仅限于这一天,我需要像这样将日期和时间存储在同一列中,因为它已在应用程序的许多其他部分中使用。

注意:如果可以在没有 SELECT 的情况下仅更新 TIME 部分,我不希望在更新之前先选择 TIMESTAMP

我查看了 DATE TIME 函数,有很多方法可以为时间添加间隔,但无论如何我都看不到将其设置为特定的值。

【问题讨论】:

    标签: mysql timestamp


    【解决方案1】:
    update table 
    set datetime_field = concat_ws(' ',date(datetime_field), '17:00:00') where id = x
    

    【讨论】:

      【解决方案2】:
      UPDATE tab 
      SET ts_field = ADDTIME(DATE(ts_field), new_time) 
      WHERE id = ?;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-10-10
        • 1970-01-01
        • 1970-01-01
        • 2021-02-10
        • 2011-01-11
        • 1970-01-01
        • 2016-09-11
        相关资源
        最近更新 更多