oracle 日期比较,只比较年月日怎么写?

oracle 日期比较,只比较年月日怎么写?,第1张

代码如下:

d2 := to_date('20190528','yyyymmdd')

d3 := to_date('20170101','yyyymmdd')

d4 := sysdate

if d1>d3 then --格式不同进行比较

  dbms_output.put_line('d1>d3')

end if

if d2>d3 then --格式相同比较

  dbms_output.put_line('d2>d3')

end if

if d1>d4 then --格式不同进行比较

  dbms_output.put_line('d1>d4')

end if

  dbms_output.put_line('d4是:'||d4)

end

扩展资料

oracle sql日期比较

oracle sql日期比较:

在今天之前:

select * from up_date where update <to_date('2007-09-07 00:00:00','yyyy-mm-dd hh24:mi:ss')

select * from up_date where update <= to_date('2007-09-07 00:00:00','yyyy-mm-dd hh24:mi:ss')

在今天只后:

select * from up_date where update >to_date('2007-09-07 00:00:00','yyyy-mm-dd hh24:mi:ss')

select * from up_date where update >= to_date('2007-09-07 00:00:00','yyyy-mm-dd hh24:mi:ss')

精确时间:

select * from up_date where update = to_date('2007-09-07 00:00:00','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

时间日期字段在数据库底层都是以时间戳的形式存储的,日期比较其实就简单的转换成了时间戳的比较, 也就是数字的比较

时间戳就是 格林威治时间1970年01月01日00时00分00秒到指定日期时间之间的秒数

2012-01-11 00:00:00的时间戳就是1326211200比较时间字段,底层实际比较的就是这个数字的时间戳


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

原文地址: http://outofmemory.cn/sjk/9896546.html

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

发表评论

登录后才能评论

评论列表(0条)

保存