我有一个textfield,用户使用修改后的jquery datepicker输入日期。该文本字段具有“2011年7月”月/年SQL以正确的格式
我需要在2011年7月1日和2011年7月31日之间运行查询来搜索结果。我在数据库中的日期是smalldatetime,所以我需要我的查询看起来像这样:
select * from members where signupdate between 'july 1 2011' and 'july 31 2011'
如何,我可以得到2011年7月的用户输入的日期转换为“2011年7月1日”和“2011年7月31日”?
编辑
我只获得了从InvalidCount一个0值,但我知道我有一个记录在那里进行测试。为什么不算呢?
MY PROC:
SELECT
(SELECT COUNT(*) FROM dbo.Members m WHERE m.memberID = @pMemberID AND m.SignUpDate BETWEEN @pDate AND DATEADD(MONTH, 1, @pDate)-1) AS 'SignUpDate',
COALESCE(SUM(m.ValidCount), 0) AS ValidCount,
COALESCE(SUM(m.InvalidCount), 0) AS InvalidCount
FROM
dbo.Members m
INNER JOIN
dbo.MemberStats ms ON m.MemberID = ms.MemberID
WHERE
m.SignUpdate BETWEEN @pDate AND DATEADD(MONTH, 1, @pDate)-1
这看起来好像在为我工作。虽然增加了一些代码。检查我的编辑。 –
你的编辑与问题的标题并不真正相关,我通常会推荐一个新问题,而不是编辑。 (例如;包含模式细节,关于ValidCount和InvalidCount是否为空的信息等等。您可能需要SUM(COALESCE())而不是COALESCE(SUM())),您可能需要一个OUTER JOIN,目前没有足够的信息来回答你的编辑。) – MatBailie