Sql server DATEPART函数中的BETWEEN子句

Sql server DATEPART函数中的BETWEEN子句,sql-server,Sql Server,我想在这个查询中使用BETWEEN子句,但不知道怎么做 SELECT * FROM record WHERE (DATEPART(yy, register_date) = 2009 AND DATEPART(mm, register_date) = 10 AND DATEPART(dd, register_date) = 10) 这是5小时前到现在的记录 SELECT * FROM record WHERE register_date BETWEEN DATEADD(HOUR,

我想在这个查询中使用BETWEEN子句,但不知道怎么做

SELECT * FROM record 
WHERE  (DATEPART(yy, register_date) = 2009
AND    DATEPART(mm, register_date) = 10
AND    DATEPART(dd, register_date) = 10)

这是5小时前到现在的记录

SELECT * FROM record
WHERE register_date BETWEEN DATEADD(HOUR, -5, GETDATE()) AND GETDATE()
看来这可能是你想要的

select * from record
where register_date between '2017-10-1' and '2017-12-31'

请注意,如果您想要最后一天的所有记录,您可能需要添加时间或选择第二天,因为默认时间为0:00在X和Y之间?我必须同时使用年和月之间的子句,如register_date介于'2009-10'和'2009-12'之间,而like子句不适用于meSo like
,其中DATEPART(year,register_date)=2009,DATEPART(month,register_date)介于9和12之间
?或者,您可以完全跳过日期部分,只需说
WHERE register\u date>='2009-10-10'和register\u date<'2010-12-11'
或类似的内容。我不能使用这个,因为我必须在什么之间使用类似的子句?两次约会?什么?您的示例似乎不需要中间子句