我有一个表,其中将日期存储为varchar
类型。
在SELECT
语句中,我要提取表的所有值,但要过滤两个日期的数据BETWEEN
。
我尝试过转换,这是我得到的最接近的。任何帮助,将不胜感激。我要过滤的日期称为打开日期
SELECT *
FROM table
WHERE Opened BETWEEN CONVERT(DATETIME, '01/08/2006', 103)
AND CONVERT(DATETIME, '01/05/2020', 103)
答案 0 :(得分:0)
我不建议您将between
与日期一起使用。 Here很好地解释了为什么,由亚伦·伯特兰(Aaron Bertrand)提供。
select t.*
from table t
where t.opened >= '2016-08-01' and
t.opened < '2020-05-02'
如果您的opened
使用相同的日期格式,请使用:
select t.*
from table t
where convert(date, t.opened, 103) >= '2016-08-01' and
convert(date, t.opened, 103) < '2020-05-02'
但是,您应该修复表格,以便使用正确的类型而不是字符串来存储日期。