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

sql语句的时间范围判断问题,大家看看,求赐教
从数据库中依据时间来检索数据,要取出一个时段范围类的数据,而且要包含符合时间范围两端边界的数据,这个sql语句怎么写,我写的是"... and (date > '" + st + "' and date < '" + end + "') or (date = '" + st + "') or (date = '" + end + "')"; 但这个不起作用,请问还有没有其他的方式

------解决方案--------------------
显然你只是精确到ss嘛。而向数据库中保存时,比如说使用参数方式录入的数据,精度可能不仅仅是到ss这一级。

这里可以写
SQL code
date >= '" + dateTimePicker1.Value.ToString("yyyy-MM-dd HH:mm:ss") + "' and date < '" + dateTimePicker2.Value.AddSeconds(1).ToString("yyyy-MM-dd HH:mm:ss") + "'";

------解决方案--------------------
或者你直接加上毫米数,例如
SQL code
date >= '" + dateTimePicker1.Value.ToString("yyyy-MM-dd HH:mm:ss") + "' and date <= '" + dateTimePicker2.Value.ToString("yyyy-MM-dd HH:mm:ss.999") + "'";