来自 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 是这样的:
SELECT
ticknumb,
cnames,
creator,
ticktype,
tickstatusFROM
ticketsWHERE
creator>= '%05-24-2015%' AND
creator<= '%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?
希望这就是您要找的。
我有一个 SQL table,其中 'creator' 列之一是 VARCHAR 数据类型。该列存储如下值:Mike Jones|05-17-2015 1:21 pm
由创建记录的人、创建日期和时间组成。
我需要使用该 varchar 数据的 date 部分来形成 SQL 查询,以便我们可以生成两个日期之间创建的工单列表。我们无法轻松地重组 table,所以我一直坚持以当前格式解决这个问题,否则我们只会添加一个 CREATED 日期字段并对其进行比较。
正在尝试的 SQL 是这样的:
SELECT
ticknumb,
cnames,
creator,
ticktype,
tickstatusFROM
ticketsWHERE
creator>= '%05-24-2015%' AND
creator<= '%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?
希望这就是您要找的。