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...