我想要获取所选日期范围内对应的所有数据。所以问题是。当数据中包含了时间的时候。它无法获取要显示的所需数据。但当我去掉时间的时候。它表现得很好。我能做些什么才能补救呢?
示例值:
工作的示例值:
我的问题是:
`"SELECT *,SUBSTRING(order_date,1,10) from orders where order_date >='$fromdate' AND order_date <='$todate'"`发布于 2018-10-30 10:37:54
理想解决方案:您需要使用Alter Table命令将order_date的数据类型从Varchar(500)更改为Datetime类型。
现在,值得注意的是,MySQL日期时间值为YYYY DD:MM:SS格式。因此,首先,您需要将日期时间字符串更改为MySQL日期时间格式字符串。否则,直接更改数据类型将导致数据的不可弥补的丢失/截断。
您的日期时间值2018-10-29 01:21:29pm基本上是YYYY DD:MM:SS/PM (12小时格式)。就格式说明符而言,它将是:'%Y-%m-%d %h:%i:%s%p'。可用格式说明符的完整列表可以在MySQL文档中看到。
--首先,,我们使用Str_To_Date()函数将所有数据转换成适当的日期时间格式。
UPDATE orders
SET order_date = STR_TO_DATE(order_date, '%Y-%m-%d %h:%i:%s%p');现在,下一步很简单。只需将数据类型修改为datetime
ALTER TABLE orders
MODIFY COLUMN order_date datetime;https://stackoverflow.com/questions/53062077
复制相似问题