【问题标题】: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';