【问题标题】:MySQL: Change type from TIME to DATETIME and obtain the stored timeMySQL:将类型从 TIME 更改为 DATETIME 并获取存储的时间
【发布时间】:2016-04-07 16:03:41
【问题描述】:

我必须将类型 TIME 更改为 DATETIME,但我想接收已经存储的时间。当我简单地更改类型时,我丢失了所有存储的时间。

有没有办法转换 TIME 字段以将日期设置为 0000-00-00 并保持时间?

谢谢 米尔科

【问题讨论】:

  • 为什么需要转换为日期时间但存储日期为 0000-00-00?比如为什么要从 TIME 转换字段?
  • 对不起,我看错了 mysql 标签

标签: mysql datetime time


【解决方案1】:

更改表格时,您可以将默认时间设置为 0000-00-00

【讨论】:

    【解决方案2】:

    我无法重现您的问题。您是如何更改日期时间的?

    SQL Fiddle

    MySQL 5.6 架构设置

    CREATE TABLE Table1
        (`tm` time)
    ;
    
    INSERT INTO Table1
        (`tm`)
    VALUES
        ('12:34:56')
    ;
    
    alter table Table1
    modify column `tm` datetime
    ;
    

    查询 1

    select
    *
    from Table1
    

    Results

    |                        tm |
    |---------------------------|
    | January, 04 2016 12:34:56 |
    

    【讨论】:

    • 为什么我在你的 SQL Fiddle 中得到 1970 年 1 月 1 日 12:34:56 的结果,当我取消注释最后一行(修改...)时,我只会显示时间,对不起,我无法重现您的代码,谢谢
    • 请提供您用于更改列的步骤,以及您的mysql版本。
    • 我使用 MySQL 5.5.42 并使用 SequelPro 执行命令。我让你的代码一步一步运行,但没有得到想要的结果
    • 我无法使用 mysql 5.5 在 sqlfiddle 重现您的问题,并且我无法访问 sequelpro。对不起。
    猜你喜欢
    • 1970-01-01
    • 2013-04-22
    • 2012-04-21
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    • 2011-05-23
    • 2018-11-09
    • 1970-01-01
    相关资源
    最近更新 更多