我有一个名为date_created的表列,其中我将日期时间值存储在VARCHAR中,例如16-06-2013 10:49:29
我想通过两个日期之间的mysql查询获得结果。我使用的查询如下:
... WHERE date_created BETWEEN '06-08-2013 22:30:18' AND '28-08-2013 22:30:22' ...此查询返回结果,但该结果还包括每月between 06 and 28的旧日期记录。我也使用< and >,但这些也不起作用。
我如何才能得到只包括“06-08-2013 22:30:18”和“28-08-2013 22:30”之间的记录的结果?
发布于 2013-08-28 18:10:53
您可以使用MySQL-函数STR_TO_DATE将字符串格式化为日期时间。
SELECT STR_TO_DATE('06-08-2013 22:30:18', '%d-%m-%Y %H:%i:%s');
# 2013-08-06 22:30:18我建议用一个更新将所有VARCHAR重新格式化为DATETIME,并修复代码。
发布于 2013-08-28 18:14:17
您需要使用STR_TO_DATE函数将日期字符串转换为可用于比较的日期。
STR_TO_DATE(date_created, '%d-%m-%Y %H:%i:%s') BETWEEN STR_TO_DATE('06-08-2013 22:30:18', '%d-%m-%Y %H:%i:%s') AND STR_TO_DATE('28-08-2013 22:30:22', '%d-%m-%Y %H:%i:%s')https://stackoverflow.com/questions/18495134
复制相似问题