我的mysql表中有一个ref
字段,其中包含的值类似于' 0-0-at-3267-201411041356'。第一部分(0-0-at-3267-)的长度和值不同,第二部分(201411041356)是引用创建日期/时间的日期/时间。检查此代码用于的所有内容,以查看它是否属于某个日期/时间段,例如201409010000和201508312359之间。
通常情况下,我可以简单地分解数据然后进行测量,但对于这个实例,它会使它太笨重。所以我想要做的是在我的查询中使用LIKE
函数,如LIKE '%201411041356'
,但我想将其与>
和<
符号一起使用,因此完整查询看起来像SELECT * FROM my_table WHERE ref LIKE > '%201409010000' AND ref LIKE < '%201508312359'
任何想法都会受到欢迎!顺便说一句,这一直是这些数据存储的方式,而且有很多这样的数据,所以改变它不是一种选择。
答案 0 :(得分:0)
SELECT *
FROM my_table
WHERE SUBSTRING(ref,-12) BETWEEN '201409010000' AND '201508312359'`
可以更好地减去最后12个字符。
答案 1 :(得分:0)
您可以在子字符串之间使用,例如:
SELECT * FROM my_table WHERE SUBSTRING(ref,-12) BETWEEN '201409010000' AND '201508312359'
答案 2 :(得分:0)
因为您写道第一部分可能有不同的长度吗?您从末尾开始有条带子字符串。
所以您的查询可能如下:
SELECT * FROM table
WHERE
SUBSTRING('ref', -12) > $from
AND
SUBSTRING('ref', -12) < $to
答案 3 :(得分:0)
如果您只想按日期来衡量:
left(right(ref, 12), 8)