我有一个 SQL 表,其中列之一'creator' 是 VARCHAR 数据类型。该列存储如下值:Mike Jones|05-17-2015 1:21 pm
由创建记录的人员、创建日期和时间组成。
我需要使用该 varchar 数据的日期部分来形成 SQL 查询,以便我们可以生成在两个日期之间创建的票证列表。我们无法轻松地重构表格,因此我只能以当前的格式来解决这个问题,否则我们只会添加一个 CREATED 日期字段并对其进行比较。
正在尝试的 SQL 是这样的:
SELECT
滴答作响,
cnames ,
创建者,
刻度类型,
刻度状态FROM
门票WHERE
创建者>= '%05-24-2015%' AND
创建者<= '%05-30-2015%' AND
刻度状态NOT LIKE 'Closed,Complete'
有没有办法直接在 SQL 查询中执行此操作,而不必首先在 php 中循环爆炸来提取和比较最早/最新日期?
最佳答案
以下是如何将 varchar 列中的值转换为日期类型的 SQL 代码片段。
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?
我希望这是您正在寻找的。p>
关于php - VARCHAR 列值的日期比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30463184/