我在DB中有datetime字段,存储发票日期(格式为2014年7月15日12:00:00 AM)
然后我有两个日期时间选择器,用于从发布日期和到目前为止。
我正试图通过SQL查询
>Where TRDate between @DT1 and @DT2 Order By TRRef DESC
问题是,如果我使用日期时间选择器选择7/15/2014,它不会显示第15个数据。为此我需要选择第14个。
未选择包含日期?
由于
答案 0 :(得分:0)
我不知道您使用的是哪种RDBMS,但这里只是一个简单的提示。您可以使用>=
和<
进行比较,但需要在第二个日期添加1 DAY
。
这是在日期中添加日期的正确语法 。这取决于你使用的RDBMS。
WHERE TRDate >= @DT1 AND TRDate < (@DT2 + 1 DAY)
^ add 1 day
所以这里发生了什么。假设您想要在7/1/2014 12:00:00 AM
和7/15/2014 12:00:00 AM
WHERE TRDate >= '2014-07-01 00:00:00' AND
TRDate < '2014-07-16 00:00:00' -- result for adding 1 day on 15th
答案 1 :(得分:0)
<强>方法一:强>
您应该像这样更改输入参数
SET @ DT1 = CONVERT(varchar(11),@ DT1,101)+'00:00:00'
SET @ DT2 = CONVERT(varchar(11),@ DT2,101)+'23:59:57';
然后编写搜索查询
或者使用此
<强>方法2 强>
在@ DT1和DateAdd(DD,1,@ DT2)之间的TRDate按TRRef DESC排序