如何添加和SqlCommand进行比较?
问题描述:
所以我遇到了一个问题,我将一组从C到C的参数传递给SqlCommand
。我的测试场景涉及以下日期如何添加和SqlCommand进行比较?
- 来自:2016年8月30日
- 于:2016年8月31日
然而,结果包括9月1日2016年
使用SQL数据服务器分析器我可以看到进入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的日期?
答
因此事实证明,我在前端使用(。).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')
如果创建的时间“59:59:59:9990”,那么这只是无效的,因为只有24小时,每天(不是60)。 – juharr
你在你的问题中有同样的问题。 – juharr