代码如下:
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 casewhen 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比较时间字段,底层实际比较的就是这个数字的时间戳
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)