SQL查询特定月份

时间:2014-10-25 00:24:43

标签: sql sql-server

我正在做一些功课,问题的一部分是这样问的:" 2004年12月开放的助攻名单"

我已经获得了大部分子查询以减少其他所需要的内容,但是我只是提出了一种方法,只能从12月和04年专门获得结果,无论如何当OpenDate是。我在查询中无法让OpenDate字段与DATEPART(月,x)很好地匹配,因为上面的限制与打开时无关。

以下是助手表。

CREATE TABLE Assists
(
AssistID            INT             IDENTITY    NOT NULL    PRIMARY KEY, 
OpenDate            DATE            NOT NULL    DEFAULT GETDATE(), 
CloseDate           DATE            NULL, 
ContactType         VARCHAR(15)     NOT NULL,
ReferralSource      VARCHAR(60)     NULL,
RefPhone            VARCHAR(10)     NULL,
RefConfidential     BIT             NULL,
RefFollowUpNeeded   BIT             NULL,
AssistType          VARCHAR(55)     NOT NULL,
SpecialistID        INT             NOT NULL
    CONSTRAINT fk_Assists_Specialists   FOREIGN KEY (SpecialistID)  REFERENCES Specialists(SpecialistID),
ClientID            INT             NOT NULL
    CONSTRAINT fk_Assists_Clients       FOREIGN KEY (ClientID)      REFERENCES Clients(ClientID),
CONSTRAINT ck_Assists_OpenDate  CHECK (OpenDate <= GETDATE()),
CONSTRAINT ck_Assists_CloseDate CHECK (CloseDate <= GETDATE()),
CONSTRAINT ck_Assists_RefPhone CHECK (RefPhone LIKE REPLICATE('[0-9]',10)),
)

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我认为这些是您应该关注的条件:

  • OpenDate在2004年12月或之前 AND
  • CloseDateNULL 在2004年12月或之后

SELECT *
FROM Assists
WHERE OpenDate <= '20041231'
AND (CloseDate IS NULL OR CloseDate >= '20041201')