【问题标题】:Add DATE and TIME fields to get DATETIME field in MySQL在 MySQL 中添加 DATE 和 TIME 字段以获取 DATETIME 字段
【发布时间】:2011-03-19 11:06:10
【问题描述】:

我正在尝试从 DATE 和 TIME 字段中获取 DATETIME 字段。 MYSQL 中的函数似乎都没有用。

是否有人知道如何做到这一点,或者如果这甚至可以做到的话? :)

【问题讨论】:

    标签: mysql sql datetime date-arithmetic


    【解决方案1】:

    应该很简单

    UPDATE table SET datetime_field = CONCAT(date_field, " ", time_field);
    

    【讨论】:

      【解决方案2】:

      如果使用“838:00:00”的TIME(根据mysql manual 是有效时间),则其他两个答案都不能正确转换日期

      因此,您可以尝试将时间字段转换为秒,然后添加它们
      例如:

      date_field + INTERVAL TIME_TO_SEC(time_field) SECOND
      

      这将相应地转换日期

      【讨论】:

        【解决方案3】:
        addtime(date_field, time_field)
        

        【讨论】:

        • 另外,你确定addtime是mysql定义的函数吗?
        • 嘿哈桑 - 我不明白为什么有必要在我的答案中添加更多内容 - 人们想要一个快速的解决方案。这是记录的 mysql 函数:dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html
        • 如果 date_field 是 DATE 类型,您需要先将其转换为 DATETIME,因为它不会自动从 DATE 类型提升到 DATETIME
        【解决方案4】:

        @Pekka 是对的。

        你也可以使用 CONCAT_WS(seperator, val1, val2,....)

        CONCAT_WS(' ', date_field,time_field)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-07-26
          • 2013-11-20
          • 2012-09-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多