php - VARCHAR 列值的日期比较

标签 php mysql compare innodb varchar

我有一个 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?

我希望这是您正在寻找的。

关于php - VARCHAR 列值的日期比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30463184/

相关文章:

php - 在 javascript .replace 中使用正则表达式翻译 preg_replace

php - ExpressionEngine:单项模板

php - MySQL - 这个查询可以简化吗? - 子选择

php - 文件放置内容换行

mysql - MySQL 中的 IN 和 = 运算符之间是否存在任何性能差异

php - 如何在php/mysql中比较日期和时间

php - Mysql删除查询只删除一行中的两列

javascript - 第二个数组的每个元素是否等于第一个数组元素的平方(CODEWARS)

python - 比较 Python 中可变数量的非关键字参数

powershell - 如何重新组织 powershell 的比较对象输出?