VARCHAR列值的日期比较

时间:2015-05-26 15:45:57

标签: php mysql compare innodb varchar

我有一个SQL表,其中一列' creator' 是VARCHAR数据类型。该列存储的值如下:Mike Jones|05-17-2015 1:21 pm由创建记录的人员,创建记录的日期和时间组成。

我需要使用该varchar数据的 date 部分来形成SQL查询,以便我们可以生成在两个日期之间创建的票证列表。我们无法轻松地对表格进行重组,因此我无法以当前格式解决这个问题,否则我们只会添加一个CREATED日期字段并对其进行比较。

正在尝试的SQL是这样的: SELECT ticknumb ,的CNAME ,创作者,滚动类型, tickstatus FROM atickets WHERE创作者>= '%05-24-2015%' AND创作者{{ 1}} {tickstatus {1}}

有没有办法在SQL查询中直接执行此操作,而不必先在php中循环爆炸以提取和比较最早/最晚的日期?

1 个答案:

答案 0 :(得分:0)

以下是SQL代码段,您可以将varchar列中的值转换为日期类型。

SELECT STR_TO_DATE(SUBSTRING_INDEX(`creator`, '|', -1), '%m-%d-%Y %h:%i %p')

http://sqlfiddle.com/#!9/710a2/7/0

另一种灵感

how to convert a string to date in mysql?

How to split the name string in mysql?

我希望这就是你要找的东西。