在T-SQL中选择日期范围内的行

Loc*_*rde 9 t-sql date

我有一组行,每行都有一个日期值,我需要选择属于特定日期范围的行.我怎样才能做到这一点?

select * from table where convert(int,date_created) between //what should go here?
Run Code Online (Sandbox Code Playgroud)

我想在'20-10-2010' 和之间选择'22-10-2010'.

它一直在抱怨字符串到日期的转换.

gbn*_*gbn 22

您需要使用yyyymmdd,这是SQL Server最安全的格式

select * from table
where date_created BETWEEN '20101020' and '20101022'
Run Code Online (Sandbox Code Playgroud)

不知道为什么你有CONVERT到那里...

注意:如果date_created有一个时间组件,它会失败,因为它假设是午夜.

编辑:

要过滤2010年10月20日至2010年10月22日(含),如果date_created列有时间,则不应用以下功能date_created:

where date_created >= '20101020' and date_created < '20101023'
Run Code Online (Sandbox Code Playgroud)