我正在尝试使用此SQL查询在此日期之后显示数据:
SELECT
DATEPART(mm, [closedate]) AS [Month],
COUNT([opp]) AS 'Won Opportunities', SUM([actual]) AS 'Value'
FROM
[dbo].[tableName]
WHERE
[person] = 'Name'
AND Month([CreatedOn]) = 2015-08-01
GROUP BY
DATEPART(mm, [closedate])
但它似乎没有起作用。
这是错误:
将nvarchar值''2015-08-01''转换为数据类型int。
时转换失败
答案 0 :(得分:2)
如果您想要在特定日期之后的所有行:
where CreatedOn >= '2015-08-01'
这将在8月1日之后为您提供一切。
但是,如果您只想要八月份的行,那么您需要
where month(CreatedOn) = 8 -- or where month(CreatedOn) = month('2015-08-01')
在任何情况下,日期文字都需要使用单引号:'2015-08-01'
而不是2015-08-01
。
答案 1 :(得分:0)
Month()函数返回一个整数。更改为1899-12-30 00:00:00
。
您可能还需要在WHERE子句中包含一个表达式,以便仅在您要使用的日期或之后返回行。
答案 2 :(得分:0)
请尝试使用以下代码段。
SELECT
DATEPART(mm,[closedate]) AS [Month],
COUNT([opp]) AS 'Won Opportunities', SUM([actual]) AS 'Value'
FROM [dbo].[tableName]
WHERE [person]= 'Name'
AND [CreatedOn] >= Cast('2015-08-01' as date)
/* AND [CreatedOn] >= '2015-08-01' -- also try with this */
GROUP BY
DATEPART(mm,[closedate])