我运行SQL Server 2005在查询日期范围内查找记录。该WHERE
条款如下:SQL Server的日期比较忽略一年
WHERE (CONVERT(NVARCHAR, fldPublishedDate, 101) >= '" & toDate &
"' AND CONVERT(NVARCHAR, fldPublishedDate, 101) <= '" & fromDate & "')"
toDate
和fromDate
正在进入这样04/01/2005
和04/30/2005
。
我得到的结果是肯定的所有4月1日至30日之间,但不同年份,从2005年(时数据收集开始)到2012年。它看起来像当年只是从比较忽略。我在这里错过了什么吗?
感谢您抽出时间来阅读。
使用参数来防止SQL注入,并通过日期,而不是字符串。 –
谢谢大家回答。我知道注入风险,但这更多的是内部工具,所以我并不太担心。此外,这是由其他人开发的,我只是想解决它。我现在甚至没有访问SQL Server的权限,只有代码。 –
此外,我不知道我有什么问题,我没有注意到转换为nvarchar,显然,这是问题。我更感兴趣的是找出它为什么在月份和日期上工作,而不是在一年中工作。奇怪的。 –