用数据库的存储数据做查询,在SQL中的执行结果和C#中不同?!
本帖最后由 treeglow 于 2013-10-04 17:25:36 编辑 时间段查询,SQL中执行存储数据和在C#中执行储存数据结果不一样。
完全一样的输入参数:
FromDT"2013-09-12 11:50:20"string
ToDT"2013-09-12 12:10:20"string
sql中返回2条结果,11:53的和12:08的数据。
C#中只返回1条结果,12:08的。
为什么?为什么?为什么?
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_select_onlytime";
SqlParameter inparm1 = cmd.Parameters.Add("@start", SqlDbType.DateTime );
SqlParameter inparm2 = cmd.Parameters.Add("@end", SqlDbType.DateTime);
inparm1.Direction = ParameterDirection.Input;
inparm2.Direction = ParameterDirection.Input;
String FromDT = dtpfrdat.Value.ToString("yyyy-MM-dd")+" "+dtpfrtim.Value.ToString("HH:mm:ss");
DateTime temp1=Convert.ToDateTime(FromDT);
inparm1.Value = temp1;
String ToDT = dtptodat.Value.ToString("yyyy-MM-dd") + " "+dtptotim.Value.ToString("HH:mm:ss");
DateTime temp2=Convert.ToDateTime(ToDT);
inparm2.Value = temp2;
SqlDataReader rdr = cmd.ExecuteReader();
ALTER procedure [dbo].[sp_select_onlytime]
(@start datetime, @end datetime)
as
select
*
from
TestRecord
where
(TestTime >= CONVERT(VARCHAR(30),@start,121) and (TestTime <= CONVERT(VARCHAR(30),@end,121));