不知道你最终要达到什么目的,不过给你提供两种方案吧:你觉得哪种用起来方便顺手,就用哪一种吧:
第一种方案:取出数据库中date类型的数据后,进行if比较:
$sql="SELECT `字段名` FROM `vime` EHERE `id`='$id'"
$arr=mysql_query($sql)
$arr=mysql_fatch_array($arr)
$time = date('Y-m-d')
if($arr[字段名]<=$time){
echo '数据库中的日期小于服务器日期'
}
这种方案呢,本人一直在用,比较起来也是确实可用的。但是如果你想直接从数据库中取今天日期的数据的话,就可以用下面的这种方案,这种方案可是对资源节省方面大有好处哦:
第二种方案:
$sql="SELECT * FROM `vime` EHERE `你存储日期的字段名` = now()"
首先要理解时间类型的和数字类型的本身没有可比性。但是如果是两个时间的间隔和数字类型的就可以进行比较。所以你是不是想说数据库的data和另外一个时间的间隔和页面输入的nunber类型相比较?如果是这样那么可以这样写:select * from tablename A where (sysdate-A.a)>to_number('str')
语句中的tablename为查询的表名;a为data类型的字段,sysdate这个是当前的时间,str为页面输入的数字。整句的意思是查询tablename表的a字段和当前间隔大于页面输入的str时间的数据。
可以比较,具体比较方法如下:
[java] view plain copy
Service:
String hql = "SELECT COUNT(*) FROM Instructions "
hql =hql+where
[java] view plain copy
String strStartDate=ParamUtil.getString(request,"strStartDate","")//格式为:2010-05-03
String strEndDate=ParamUtil.getString(request,"strEndDate","")//格式为:2016-06-01
if(!strStartDate.equals("")){
tWhere+=" and dtCreatDate>=to_date('"+strStartDate+" 00:00:00','yyyy-mm-dd hh24:mi:ss')"
}
if(!strEndDate.equals("")){
tWhere+=" and dtCreatDate<=to_date('"+strEndDate+" 23:59:59','yyyy-mm-dd hh24:mi:ss')"
}
[java] view plain copy
int count = objSvr.getCount(tWhere)
打印的语句如下:
[sql] view plain copy
WHERE intVirDel<>1 and dtCreatDate>=to_date('2016-06-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and dtCreatDate<=to_date('2016-06-24 23:59:59','yyyy-mm-dd hh24:mi:ss')
时间类型可以比较大小,但是日期格式需要转成字符串,或者字符串转成日期来比较
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)