我在mysql中定义了日志表,其中包括了时间字段,我设置的是timestamp,并建立一个存储过程如下:
CREATE DEFINER=`root`@`localhost` PROCEDURE `GetLogsByDate`(
date_begin timestamp,
date_end timestamp
)
BEGIN
if date_begin = '' and date_end != '' then
select * from adminlogs where logs_date <= date_end + '23:59:59';
elseif date_begin !='' and date_end = '' then
select * from adminlogs where logs_date >= date_begin;
elseif date_begin !='' and date_end !='' then
select * from adminlogs where logs_date between date_begin and date_end +'23:59:59';
elseif date_begin ='' and date_end = '' then
select * from adminlogs;
end if;
END
然后我在.net中定义如下:
MySqlDateTime begin = Convert.ToDateTime("2009-4-7 0:0:0");
MySqlDateTime end = Convert.ToDateTime("2009-4-9 0:0:0");
然后用程序调用存储过程进行查询,但是一直都出现
异常详细信息: System.IndexOutOfRangeException: 无法找到表 0。
并且即使把字段都改为datatime,也不行,但是我如果把存储过程改为
BEGIN
select * from adminlogs;
END
这样确能查到数据,请教各位到底什么原因?
CREATE DEFINER=`root`@`localhost` PROCEDURE `GetLogsByDate`(
date_begin timestamp,
date_end timestamp
)
BEGIN
if date_begin = '' and date_end != '' then
select * from adminlogs where logs_date <= date_end + '23:59:59';
elseif date_begin !='' and date_end = '' then
select * from adminlogs where logs_date >= date_begin;
elseif date_begin !='' and date_end !='' then
select * from adminlogs where logs_date between date_begin and date_end +'23:59:59';
elseif date_begin ='' and date_end = '' then
select * from adminlogs;
end if;
END
然后我在.net中定义如下:
MySqlDateTime begin = Convert.ToDateTime("2009-4-7 0:0:0");
MySqlDateTime end = Convert.ToDateTime("2009-4-9 0:0:0");
然后用程序调用存储过程进行查询,但是一直都出现
异常详细信息: System.IndexOutOfRangeException: 无法找到表 0。
并且即使把字段都改为datatime,也不行,但是我如果把存储过程改为
BEGIN
select * from adminlogs;
END
这样确能查到数据,请教各位到底什么原因?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货