oracle中date类型能比较大小吗?

oracle中date类型能比较大小吗?,第1张

可以比较,具体比较方法如下:

[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')

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

oracle中date的类型可以直接使用<, >, <>进行比较,字符串类型可以先转换成date类型在进行比较

select case 

    when to_date('2017-01-20', 'yyyy-mm-dd') > sysdate 

        then 'true'

    else 'false' end

from dual

import java.text.DateFormat

import java.text.SimpleDateFormat

import java.util.Date

public class test {

public static void main(String args[]) {

int i= compare_date("1995-11-12 15:21", "1999-12-11 09:59")

System.out.println("i=="+i)

}

public static int compare_date(String DATE1, String DATE2) {

DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm")

try {

Date dt1 = df.parse(DATE1)

Date dt2 = df.parse(DATE2)

if (dt1.getTime() >dt2.getTime()) {

System.out.println("dt1 在dt2前")

return 1

} else if (dt1.getTime() <dt2.getTime()) {

System.out.println("dt1在dt2后")

return -1

} else {

return 0

}

} catch (Exception exception) {

exception.printStackTrace()

}

return 0

}

}


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

原文地址:https://54852.com/sjk/9970525.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存