在MySQL

时间:2017-11-22 17:24:10

标签: mysql datetime sqlalchemy type-conversion alembic

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

1 个答案:

答案 0 :(得分: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';