如何添加到与SqlCommand的比较?

时间:2016-09-29 18:52:08

标签: c# sql sql-server momentjs

所以我遇到了一个问题,我将一个从C#的参数集传递给SqlCommand。我的测试场景涉及以下日期

  • 来自:2016年8月30日
  • 至:2016年8月31日

然而,结果包括2016年9月1日的数据。

使用SQL Server探查器我可以看到进入SQL查询的日期是2016-09-01 00:00:00'而不是2016-08-31 23:59:59。

以下是相关的C#代码段

if (request.DateStart != DateTime.MinValue) 
   command.Parameters.Add(new SqlParameter("@dateStart", request.DateStart));

if (request.DateEnd != DateTime.MinValue) 
   command.Parameters.Add(new SqlParameter("@dateEnd", request.DateEnd));

什么会导致C#更改发送到SQL的日期?

1 个答案:

答案 0 :(得分:1)

事实证明,在前端我正在使用时刻(to).endOf(' day')将结束时间发送到API上的DateEnd参数。问题是,这最终成为2016-08-31 23:59:59:9990'的日期。这恰好比SQL的日期时间类型更精确,因此c#有助于将日期值舍入到2016-09-01 00:00:00'。

我已将前端代码更改为以下内容并解决了问题。在这种情况下,事实证明存在太精确的事情。

 moment(filter.dateEnd).add(1, 'day').add(-1, 'second')