Sql Query不显示所选日期的数据

时间:2014-07-24 10:36:42

标签: sql vb.net

我在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个。

未选择包含日期?

由于

2 个答案:

答案 0 :(得分:0)

我不知道您使用的是哪种RDBMS,但这里只是一个简单的提示。您可以使用>=<进行比较,但需要在第二个日期添加1 DAY

这是在日期中添加日期的正确语法 。这取决于你使用的RDBMS。

WHERE TRDate >= @DT1 AND TRDate < (@DT2 + 1 DAY)
                                        ^ add 1 day

所以这里发生了什么。假设您想要在7/1/2014 12:00:00 AM7/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排序