使用Microsoft SQL2008。我要从当前日期到该月的第一天(或同一个月内)选择两个表。假设今天的日期是2012年5月9日,日期列是“datecolumn”。从下面的表中,我应该只从表1中获得行集6,7,从表2中获得行集9,2,因为这些日期与2012年5月9日在同一个月内。

table1
4 02/01/2012
5 01/02/2011
6 05/01/2012
7 05/20/2012

table2
8 02/01/2012
9 05/14/2012
3 01/02/2011
2 05/18/2012

我试过了,但是没用:
DECLARE @daterange
SET @daterange = (DATEPART(MONTH,GETDATE()) + '/' + DATEPART(YEAR,GETDATE()))

SELECT blah from table where (DATEPART(MONTH,datecolumn) + '/' + DATEPART(YEAR,datecolumn)) = @daterange

最佳答案

您可以简化它,而无需从GETDATE()重构date字段:

SELECT blah
FROM table
WHERE DATEPART(MONTH,datecolumn) = DATEPART(MONTH,getdate()) AND
DATEPART(YEAR,datecolumn) = DATEPART(YEAR,getdate())

关于sql - 从当前日期到该月的第一天的两个表中选择日期范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10526030/

10-10 04:48