日期:2014-05-18  浏览次数:20522 次

关于一个查找时间的问题
其实类似的问题我前几天发过   不过没有解决
只能发个帖子详细地说明下  
比较急   请大家帮帮忙

说一下我是想实现在数据库查找是否存在已知一个时间断里的时间
比如已知6:00   到12:00   类型已经转成datetime了
数据表中都是一个时间点比如8:35   9:30   14:50之类的   类型是datetime

  try
                {
                        SqlDataReader   myreader   =   cmd.ExecuteReader();
                        if   (myreader.HasRows)
                        {
                                Label5.Text   =   myreader.GetValue(1).ToString();
                        }
                        else
                                Label5.Text   =   "没有这条纪录 ";
                        myreader.Close();
                }
.......

运行的显示总是“没有这条记录”;

--------------------------------------

我就想可能我的sql语句也错了

ALTER   PROCEDURE   dbo.SelectStartTime  
@Time1   datetime,
@Time2   datetime

AS
select   starttime   from   sys_flight   where   convert(varchar(5),starttime,14)     >   @Time1   and   convert(varchar(5),starttime,14)   <@Time2
RETURN

结果:运行[dbo].[SelectStartTime]   (   @Time1   =   8:00,   @Time2   =   9:00   ).

starttime  
-----------------------  
没有行受影响。
(返回   0   行)
@RETURN_VALUE   =   0
完成   [dbo].[SelectStartTime]   运行。

运行没有结果

--------------------------------------

然后我在sql查询分析器里面运行


execute   selectstarttime   @Time1= '8:00 ',   @Time2= '9:00 '

运行是有结果的
1899-12-30   08:45:00.000

--------------------------------------

为什么用查询分析器是有结果的   但是在VS2005里面执行存储过程没有结果呢?

请问大家这是什么原因阿?


------解决方案--------------------
如果你只取一个数据,使用ExecuteScalar 方法多好啊.

如果使用ExecuteReader就要做循环来取.
------解决方案--------------------
execute selectstarttime @Time1= '08:00 ', @Time2= '09:00 '