[問題] 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