php sql数据库里的date型数据,如何和服务器时间进行if比较?

php sql数据库里的date型数据,如何和服务器时间进行if比较?,第1张

if比较吗?

不知道你最终要达到什么目的,不过给你提供两种方案吧:你觉得哪种用起来方便顺手,就用哪一种吧:

第一种方案:取出数据库中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')

时间类型可以比较大小,但是日期格式需要转成字符串,或者字符串转成日期来比较


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6794494.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存