ORACLE时间字段取年、月、日、季度

--得到年月,日,季度

select
to_char(日期,'yyyymmdd')   DATE_ID,to_char(日期,'yyyy')||'年'||to_char(日期,'mm')||'月'||to_char(日期,'dd')||'日'   DATE_NAME,
to_char(日期,'yyyymm')   MONTH_ID,to_char(日期,'yyyy')||'年'||to_char(日期,'mm')||'月'   MONTH_NAME,
'Q'||to_char(日期,'q.yyyy')   QUARTERID,to_char(日期,'yyyy')||'年第'||to_char(日期,'q')||'季度'   QUARTERID_NAME,
to_char(日期,'yyyy')   YEAR_ID,to_char(日期,'yyyy')||'年'   YEAR_NAME
from(
select   to_date('2000-01-01','yyyy-mm-dd')+(rownum-1)   日期   from   user_objects   where   rownum<367   and   to_date('2000-01-01','yyyy-mm-dd')+(rownum-1)<to_date('2001-01-01','yyyy-mm-dd')
);


--得到季度和月份对应关系

select   distinct   to_char(日期,'q')   季度,to_char(to_date('2001-01-01','yyyy-mm-dd')+(rownum-1),'yyyymm')   日期     from(   select   to_date('2001-01','yyyy-mm')+(rownum-1)   日期   from   user_objects   where   rownum<367   and   to_date('2001-01-01','yyyy-mm-dd')+(rownum-1)<to_date('2002-01-01','yyyy-mm-dd')
);

--得到一年中的天数

select   to_char(to_date('2000-01-01','yyyy-mm-dd')+(rownum-1),'yyyy-mm-dd')   日期   from   user_objects   where   rownum<367   and   to_date('2000-01-01','yyyy-mm-dd')+(rownum-1)<to_date('2001-01-01','yyyy-mm-dd');

to_char(sysdate,'q')   季
to_char(sysdate,'yyyy')年
to_char(sysdate,'mm')月
to_char(sysdate,'dd')日
to_char(sysdate,'d')星期中的第几天
to_char(sysdate,'DAY')星期几
to_char(sysdate,'ddd')一年中的第几天

其它方法:
select extract(month   from   query_cxrq) from app_query

extract(year from query_cxrq)年度
extract(month from query_cxrq)月份
extract(day from query_cxrq)日

--转换带时间的日期格式变量为shortdate格式时间字符串方法:

1、datetime.tostring("yyyy.MM.dd")

2、formatdatetime(datetime,"yyyy.MM.dd")

3、convert.todatetime(str).ToShortDateString()

在我们平常的开发中可能会遇到这样的问题,就是判断某一列是否全部由数字组成,我们都知道 oracle 并没有给我们提供这样一个现成的函数,那么根据我的经验我总结了两个行之有效的方法(列名:column,表名:table): 1.使用trim+translate函数: 代码如下:select * from table where trim(translate(column,’0123456789′,’ ‘)) is NULL;   这里要注意的是:translate函数的第三个参数是一个空格,不是”, 因为translate的第三个参数如果为空的话,那么永远返回”,这样的就不能达到过滤纯数字的目的。 获取 年 select extract(year from sys date ) from dual; select extract(month from sys date ) from dual; select extract(day from sys date ) from dual; 格式化 期: select to_char(sys date ,'yyyy-MM-dd HH24:mi:ss') from dual; select to_ date ('2018-07-25 15:53:13',' select to_number(to_char(sys date ,'yyyy')) from dual;或者可以直接使用 Oracle 提供的 Extract 函数select sys date from dual; --获得当前系统 时间 select extract(year from sys date ) from dual; --获得系统当前年 select extract(month from sy 正常 获取 时间 select sys date from dual;-- 当前 时间 select to_char(sys date ,‘YYYY’) from dual; -- 获取 年份 另类方法:extract函数 select extract(year from systimestamp) year ,extract(month from systimestamp) month ,extract(day from systimestamp) day ,extract(minu oracle trunc()函数的用法1.TRUNC(for date s)TRUNC函数为指定元素而截去的 期值。其具体的语法格式如下:TRUNC( date [,fmt])其中: date 一个 期值fmt 期格式,该 期将由指定的元素格式所截去。忽略它则由最近的 期截去下面是该函数的使用情况:TRUNC(TO_ DATE (’24-Nov-1999 08:00 pm’,’dd-mon-yyyy hh:mi... 获取 期列表: SELECT TO_CHAR(TO_ DATE ('2014-10-01', 'yyyy-MM-dd') + ROWNUM - 1, 'yyyyMMdd') as dayslist FROM DUAL CONNECT BY ROWNUM <= trunc(to_ date ('2015-06-01', 'yyyy-MM-dd') - 加法select sys date ,add_months(sys date ,12) from dual; –加1年select sys date ,add_months(sys date ,1) from dual; –加1 select sys date ,to_char(sys date +7,’yyyy-mm-dd HH24:MI:SS’) from dual; –加1星期select sys date ,to_c...