您的位置:首页 > 数据库 > MySQL

mysql 查一段时间的小例子

2007-11-21 21:50 148 查看
String sql = "select sUserID from muserinfo,DRM_CONENTS where muserinfo.sUserID=DRM_CONENTS.cpid and DRM_CONENTS.adddate between '"
+ date + "' and '" + endDate1 + "'";
System.out.println(sql);

//date is String "2007-01-01"
//endDate1 is String "2008-01-01"

把String 传到数据库里就可以```

select * from table where date between '2004-05-07' and '2005-02-04'

$date1=20010101010101;
$date2=20050101010101;

$query="SELECT * FROM DataInformation WHERE 1*time>;$date1 and 1*time<=$date2 and satellite='$satellite'";

//以前可以完成查询语句,1*time的格式与$date相同,但最近却不行了。。。。1*time=1*(2003-01-01 01:01:01)=2003无法完成查询。。。

一般来说,我们在mysql数据库纪录数据时间时,都会选择datatime类型,这样时间可以精确到秒。但随之而来的一个问题是,当我们要取得某一段时间内的数据内容会有一些时间转换上的麻烦,例如我们要取得2002年3月2日到2003年7月8日的这段时间的内容,我们第一个直觉就是应该将sql写成下面的形式:
select * from yourdb where sj>='2002-3-2' and sj<= '2003-7-8'
  这样以来,我们取得数据内容就是2002年3月2日0点以后到2003年7月8日0点(也就是7月7号12点之前)之间的内容,这个当然不是我们想要的,所以需要使用mysql的时间函数to_days()来写这个sql:
select * from yourdb where to_days(sj)>=to_days('2002-3-2') and sj<= to_days('2003-7-8')
  现在,我们所取得就是我们想要的结果了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: