SQL Datepart Where子句不起作用

时间:2011-05-09 23:29:53

标签: sql sql-server tsql asp-classic ado

我遇到了复杂查询结束的问题:

SQLString = "SELECT i.CONCOM, 
                    COALESCE(SUM(CASE 
                                   WHEN C.CATEGORY_ID = '30' THEN 0 
                                   ELSE t.LOGMINS END), 0) AS TotalWithoutNew, 
                    COALESCE(SUM(t.LOGMINS), 0) AS TotalAllId 
               FROM Inquiry AS i 
         INNER JOIN TIMELOG AS t ON t.INQUIRY_ID = i.INQUIRY_ID 
         INNER JOIN PROD AS P ON i.PROD_ID = P.PROD_ID 
         INNER JOIN CATEGORY AS C ON P.CATEGORY_ID = C.CATEGORY_ID 
              WHERE (DATEPART(m, ESCDATE) = " & objmonth & ") 
                AND (DATEPART(y, ESCDATE) = " & objyear & ") 
           GROUP BY i.CONCOM 
           ORDER BY concom ASC"

查询在没有where子句的情况下正常工作,但是当我将where子句放入其中时,返回任何内容。 ESCDATE是DATETIME字段。我一开始以为它不是将整数传递给它而是字符串,它肯定是通过整数。

在ASP脚本中,我使用Request.Querystring来获得一个月和一年的时间,我基本上想要检查ESC日期,它只会从指定年份中指定的月份返回结果。

1 个答案:

答案 0 :(得分:4)

'y'说明符是一年中的一天,而不是一年。试试'yy'或'yyyy'。