我尝试将以下查询构建到select * from table
minDate
为03-02-2014
且maxDate
为01-03-2014
SELECT * From table Where
SUBSTRING(mydate, 1, 10) >= REPLACE('03-02-2014','-','/') AND
SUBSTRING(mydate, 1, 10) <= REPLACE('01-03-2014','-','/')
但是我错过了一些东西。
希望有人可以帮助我。{{1}}
注意: 我的日期列的类型为varchar,其值如下所示 - &gt; 03/02/2014 18:13:16
我在sql server management studio(t-sql)工作
答案 0 :(得分:1)
你可以这样做:
Select * From Table
Where CONVERT( Datetime, mydate ,110 ) between CONVERT( Datetime, @min ,110 ) and between CONVERT( Datetime, @max ,110 )
答案 1 :(得分:1)
根据您的评论,您的表格的mydate
列似乎是英国格式
阅读this article有关SQL SERVER中的日期转换,以了解有关日期转换的更多信息
还使用此格式的日期转换更新了我的答案。
尝试类似
的内容SELECT * FROM table
WHERE CONVERT(DATE, SUBSTRING(mydate, 1, 10), 103) >= CONVERT(DATE, '03/02/2014', 103)
AND CONVERT(DATE, SUBSTRING(mydate, 1, 10), 103) <= CONVERT(DATE, '01/03/2014', 103)
答案 2 :(得分:0)
我目前没有可用的SSMS,但为了快速尝试,您可以试试这个
SELECT * From table Where
CAST( SUBSTRING(mydate, 1, 10) as date) BETWEEN CAST( SUBSTRING('START DATE', 1, 10) as date)
AND CAST( SUBSTRING('END DATE', 1, 10) as date)