来自 VARCHAR 列值的日期比较

Date comparison from VARCHAR column value

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

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

正在尝试的 SQL 是这样的: SELECTticknumb,cnames,creator,ticktype,tickstatusFROMticketsWHEREcreator>= '%05-24-2015%' ANDcreator<= '%05-30-2015%' AND勾选状态NOT LIKE 'Closed,Complete'

有没有一种方法可以直接在 SQL 查询中执行此操作,而不必首先在 php 中循环展开以提取和比较最早/最晚日期?

这里是 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?

希望这就是您要找的。