MySQL SELECT查询字符串拆分搜索值

时间:2017-02-21 20:27:57

标签: mysql sql string match

我有一个MySQL列设置如下

daterange = 02/27/2017 - 02/29/2017

现在我想

SELECT * FROM leaves WHERE daterange (>= firstvalue && <= secondvalue)

这可能吗?拆分每个值,因为它们被保存为一个字符串?否则,我想我必须在将日期范围插入表格之前将其拆分。

2 个答案:

答案 0 :(得分:1)

假设daterange,firstvalue和secondvalue是您可以在

之间使用的正确日期(日期时间)数据类型
SELECT * 
FROM leaves 
WHERE daterange BETWEEN  firstvalue AND  secondvalue

如果调用的某些值不是日期数据类型而是varchar,则应使用str_to_date或

正确转换

答案 1 :(得分:0)

首先,修复您的数据结构。以下是存储范围的错误:

  • 日期应以原生格式([0, -0.5, 0, -1]date)存储,而不是字符串。
  • 列应该只有一个值。
  • 必须对列进行字符串操作通常会排除使用索引。

那就是说,有时你会被其他人的设计决定所困扰。因此,如果您完全无法修复数据结构,那么可以解决这个问题。您可以将范围转换为所需的值:

datetime