【问题标题】:Type convert from date to datetime in MySQL在 MySQL 中输入从日期到日期时间的转换
【发布时间】:2018-05-06 13:00:06
【问题描述】:

如果我输入 convert from date to datetime 来存储时间,那么时间的默认值是多少?我想迁移只是日期的数据。数据中有来自“value_to”和“value_from”的对。这些值是日期,应该是日期时间。我想我可以使用 alembic+sqlalchemy 升级进行转换,并使用 be 降级将其转换回来。我想这不是问题,“value_from”应该是 00:00:00,“value_to”应该是 23:59:59,但你看到我的计划有什么错误吗?

【问题讨论】:

    标签: mysql datetime sqlalchemy type-conversion alembic


    【解决方案1】:

    这类问题不用alembic+sqlalchemy也能回答。这就是您的test 数据库的用途。用mysql客户端试试吧:

    mysql> use test;
    
    mysql> create table foo ( d date );
    
    mysql> insert into foo set d = now();
    
    mysql> select * from foo;
    +------------+
    | d          |
    +------------+
    | 2017-11-22 |
    +------------+
    
    mysql> alter table foo modify d datetime;
    
    mysql> select * from foo;
    +---------------------+
    | d                   |
    +---------------------+
    | 2017-11-22 00:00:00 |
    +---------------------+
    

    是的,如果您的列是 DATETIME,并且您想搜索某一天,您可以使用 BETWEEN:

    mysql> select * from foo where d between '2017-11-22 00:00:00' and '2017-11-22 23:59:59';
    

    但是如果你使用小数精度的 DATETIME,你可能想要做不等式,所以你不会错过一天的最后一秒:

    mysql> select * from foo where d >= '2017-11-22 00:00:00' and d < '2017-11-23 00:00:00';
    

    【讨论】:

      猜你喜欢
      • 2017-06-07
      • 1970-01-01
      • 1970-01-01
      • 2011-06-12
      • 1970-01-01
      • 2011-07-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多