所以我遇到了一个问题,我将一个从C#的参数集传递给SqlCommand
。我的测试场景涉及以下日期
然而,结果包括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的日期?
答案 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')