您的位置:首页 > 数据库 > Oracle

数据库:Oracle使用指南

2019-05-24 10:05 1436 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaxianba/article/details/90511466

我们都知道Oracle是传统数据库提供商,有很强的数据库方面技术,同时又收购了SUN下面的Java,MySQL数据库等,虽然主流的数据库厂商基本上都是支持SQL标准的,但是各自数据库厂商又添加了各自自己的特性,使得在实际使用过程中还是存在较大差异的,我们今天主要讲解下Oracle在日常使用中遇到的问题。

  1. 日期。
    1.1 获取日期;有时候我们需要数据库能够根据系统时间自动获取年、月、日等信息,这个需求还是很普遍的。在Oracle中,我们只可以从一个date类型中截取 year,month,day(date日期的格式为yyyy-mm-dd); Oracle的日期函数是sysdate,接下来我整理了一下有关时间需求的SQL查询语句如下:

    select extract(year from sysdate) from dual; --当前年
    select extract(month from sysdate) from dual; --本年到当月的月数
    select extract(day from sysdate) from dual; --本月到当日的天数
    select to_char(sysdate, ‘yyyy’) from dual; --年
    select to_char(sysdate, ‘MM’ ) from dual; --月
    select to_char(sysdate, ‘dd’ ) from dual; --日
    select to_char(sysdate,‘Q’) from dual; --季
    select to_char(sysdate,‘iw’) from dual; --周
    select ADD_MONTHS(sysdate,-12) from dual; – 获取前N个月日期
    select extract(year from ADD_MONTHS(sysdate,-12)) from dual; – 获取上一年年份(1)
    select sysdate - interval ‘1’ year from dual; – 获取上一年年份(2)

    1.2 获取当天、当周、当月、当季、当年数据,我们知道当天、当月、当年数据的数据只要等于就能查询出来,当周、当季的数据呢,原来Oracle都有相应的系统方法,具体语句如下:

    select * from 表名 where to_char(字段名,‘dd’)=to_char(sysdate,‘dd’) – 当天
    select * from 表名 where to_char(字段名,‘iw’)=to_char(sysdate,‘iw’) – 当周
    select * from 表名 where to_char(字段名,‘mm’)=to_char(sysdate,‘mm’) – 当月
    select * from 表名 where to_char(字段名,‘q’)=to_char(sysdate,‘q’) – 当季

  2. 查询;当我们数据库表越来越多,字段越来越多的时候可能会存在查询库中是否存在某张表以及查询表中是否有某个字段这样的需求,具体查询如下:

    SELECT COUNT() FROM user_objects where object_name=‘COST_TB_PLAN’; – 查询库中是否存在表
    SELECT table_name FROM user_tables WHERE table_name LIKE ‘%COST_TB_PLAN%’; – 模糊查询表名
    SELECT COUNT() FROM USER_TAB_COLUMNS WHERE TABLE_NAME=‘COST_TB_PLAN’
    AND COLUMN_NAME=‘COSTTYPE_ID’; – 查询表中是否存在字段

参考文献
1.Oracle 获取当前年、月、日

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: