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