数据库:Oracle使用指南

版权声明:本文为博主原创文章,未经博主允许不得转载。 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’; – 查询表中是否存在字段

  3. 当我们数据库中保存的是单独的年、月数据,如何获取任意年跟当前季度相同的数据呢,思路是先要根据当前年、月拼接出完整日期,然后根据完整日期计算季度,最后跟当前系统获取的季度相比较。
    在这里插入图片描述

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

猜你喜欢

转载自blog.csdn.net/xiaxianba/article/details/90511466
今日推荐