从中选择日期的表中选择*

时间:2014-03-10 16:38:57

标签: sql tsql

我尝试将以下查询构建到select * from table minDate03-02-2014maxDate01-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)工作

3 个答案:

答案 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)