十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
如果都是date类型,直接使用 大于、小于这些来比较
站在用户的角度思考问题,与客户深入沟通,找到武强网站设计与武强网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、成都网站设计、企业官网、英文网站、手机端网站、网站推广、域名与空间、网站空间、企业邮箱。业务覆盖武强地区。
在sql中,如果是多个字段比较:
select case when 日期1日期2 then 日期1 else 日期2 end as 较大的日期 from 表名
如果是同一个字段内多条值比较,就可以直接用max 和min这些
select max(日期字段) as 大的日期 from 表名
需要转换成date格式进行比较,或者直接比较也可以。
比如时间格式是2104-01-01 00:00:00。
语法:
select sign(to_date('2015-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') -
to_date('2015-01-02 00:00:00', 'yyyy-mm-dd hh24:mi:ss'))
from dual
如果返回值为-1,则前边的日期较小;返回值为0,则两个值一样大;返回值为1,则后边的日期较小。
代码如下:
d2 := to_date('20190528','yyyymmdd');
d3 := to_date('20170101','yyyymmdd');
d4 := sysdate;
if d1d3 then --格式不同进行比较
dbms_output.put_line('d1d3');
end if;
if d2d3 then --格式相同比较
dbms_output.put_line('d2d3');
end if;
if d1d4 then --格式不同进行比较
dbms_output.put_line('d1d4');
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')
时间日期字段在数据库底层都是以时间戳的形式存储的,日期比较其实就简单的转换成了时间戳的比较, 也就是数字的比较
时间戳就是 格林威治时间1970年01月01日00时00分00秒到指定日期时间之间的秒数
2012-01-11 00:00:00的时间戳就是1326211200比较时间字段,底层实际比较的就是这个数字的时间戳
这个是天数
如果计算小时就用 300*24
如果计算分钟就用 300*24*60
如果计算秒数就用 300*24*60*60
SELECT REGENDDATE FROM TABLE WHERE SYSDATE = ADD_MONTHS('Y',3,REGENDDATE)
如果REGENDDATE是字符型的话,自己转一下吧!~