如何从SQL中选择2008年的数据

时间:2012-04-02 02:34:15

标签: sql sql-server-2008

我的where子句有问题。我应该只选择2008年的数据

SELECT 
    Count(S.salesOrderID),p.SalesOrderNumber,p.Duedate, status =
        CASE  when p.status =1 THEN 'In Process'
            when p.status =2  THEN ' Approved'
            when p.status =3 THEN ' Backordered'
            when p.status =4 THEN ' Rejected'
            when p.status =5 THEN ' Shipped'
        END
FROM 
    Sales.SalesOrderHeader p 
INNER JOIN  
    Sales.SalesOrderDetail s ON  p.SalesOrderID = s.SalesOrderID AND  
    P.DueDate >= '2008' AND p.DueDate < '2009'
GROUP BY
    p.SalesOrderNumber, p.Duedate, status
ORDER BY 
    SalesOrderNumber DESC

你们可以告诉我如何更改where where子句,以便只包括2008年的数据吗?

1 个答案:

答案 0 :(得分:3)

Duedate的数据类型是DATETIME吗?如果是这样,那么你会想要提供合格的日期,而不仅仅是年份:

WHERE p.Duedate >= '2008-01-01' and p.Duedate < '2009-01-01'