[问题] ADO.NET查询时间区间突然查不到?

楼主: aoksc (重出江湖)   2015-05-10 21:31:57
请问各位
我用ADO.NET下SQL指令查询遇到一个问题
我条件是这么写的
… AND CreateDateTime BETWEEN @SevenDaysAgo AND CURRENT_TIMESTAMP
cmd.Parameters.Add("@SevenDaysAgo", SqlDbType.DateTime);
cmd.Parameters[1].Value = DateTime.Now.AddDays(-7);
我是想捞出前七天到目前时间的资料
到今天下午都还能正常跑出来
不过晚上再试就不行了
我有试着把@SevenDaysAgo改成'2015/05/03'就能出来了(在程式中或上SQL Server执行)
DateTime.Now.AddDays(-7)的结果的确是2015/05/03
所以应该不是其他条件的关系(其实也只有两个条件)
CURRENT_TIMESTAMP我有试过换成GETDATE一样不行
请问是我写的方式不对吗?
我的环境SQL Server 2014
数据库的时间有
2015-05-10 09:04:05.883
2015-05-09 17:54:44.460
2015-05-09 17:49:17.997
2015-05-09 17:47:16.490
2015-05-09 17:46:36.173
2015-05-09 17:43:28.100
2015-05-09 17:41:08.323
2015-05-09 17:15:00.083
2015-05-06 22:08:39.537
奇怪的是只有2015-05-06这笔有出来
09跟10的资料都没出来
谢谢
作者: J002 (阿里山 我来了XD~)   2015-05-10 23:50:00
可以贴完整一点的code吗?刚刚自己试了一下是没问题的@@"不过小弟的数据库用的是Sql Server 2012 不知到会不会有差异道
作者: Litfal (Litfal)   2015-05-11 00:16:00
用 AddWithValue 比较不容易搞错,另外你可以想办法把实际的SQL显示出来
楼主: aoksc (重出江湖)   2015-05-11 06:53:00
抱歉乌龙一场 原来在条件的部份我把时间的字段取错了 囧用2015/05/04可应该是因为他的时间是2015/05/04 00:00:00

Links booklink

Contact Us: admin [ a t ] ucptt.com