我有一个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中循环爆炸以提取和比较最早/最晚的日期?
答案 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?
我希望这就是你要找的东西。