oracle日期函数集锦

来源:互联网 发布:cms监控设置回放 编辑:程序博客网 时间:2024/06/04 18:22

一、 常用日期数据格式


1.Y
YYYYY 年的最后一位,两位或三位

SQL> Select to_char(sysdate,'Y') from dual;

TO_CHAR(SYSDATE,'Y')
--------------------
7

SQL> Select to_char(sysdate,'YY') from dual;

TO_CHAR(SYSDATE,'YY')
---------------------
07

SQL> Select to_char(sysdate,'YYY') from dual;

TO_CHAR(SYSDATE,'YYY')
----------------------
007

2.Q
季度 13月为第一季度,2表示第二季度。

SQL> Select to_char(sysdate,'Q') from dual;

TO_CHAR(SYSDATE,'Q')
--------------------
2

3.MM
月份数

SQL> Select to_char(sysdate,'MM') from dual;

TO_CHAR(SYSDATE,'MM')
---------------------
05

4.RM
月份的罗马表示 (V在罗马数字中表示 5

SQL> Select to_char(sysdate,'RM') from dual;

TO_CHAR(SYSDATE,'RM')
---------------------
V

5.Month
9个字符长度表示的月份名

SQL> Select to_char(sysdate,'Month') from dual;

TO_CHAR(SYSDATE,'MONTH')
------------------------
5


6.WW
当年第几周 (2007529日为2007年第22周)

SQL> Select to_char(sysdate,'WW') from dual;

TO_CHAR(SYSDATE,'WW')
---------------------
22

7.W
本月第几周 (2007529日为5月第5周)

SQL> Select to_char(sysdate,'W') from dual;

TO_CHAR(SYSDATE,'W')
--------------------
5

8.DDD
当年第几天 (2007529日为2007年第149天)

SQL> Select to_char(sysdate,'DDD') from dual;

TO_CHAR(SYSDATE,'DDD')
----------------------
149

9. DD
当月第几天

SQL> Select to_char(sysdate,'DD') from dual;

TO_CHAR(SYSDATE,'DD')
---------------------
29

10.D
周内第几天

SQL> Select to_char(sysdate,'D') from dual;

TO_CHAR(SYSDATE,'D')
--------------------
3

11.DY
中文的星期几 ( (2007529日为星期二))

SQL> Select to_char(sysdate,'DY') from dual;

TO_CHAR(SYSDATE,'DY')
---------------------
星期二

12.HH
HH12 12进制小时数 (1609分为用12小时制计时为4点)

SQL> Select to_char(sysdate,'HH') from dual;

TO_CHAR(SYSDATE,'HH')
---------------------
04

13.HH24 24
小时制

SQL> Select to_char(sysdate,'HH24') from dual;

TO_CHAR(SYSDATE,'HH24')
-----------------------
16

14.MI
分钟数(059)
提示注意不要将MM格式用于分钟(分钟应该使用MI)MM是用于月份的格式,将它用于分钟也能工作,但结果是错误的。

15.SS
秒数(059)

===============================================================================================

二、常用时间函数

1.trunc(sysdate,'Q')
本季度第一天

SQL> select trunc(sysdate,'Q') from dual;

TRUNC(SYSDATE,'Q')
------------------
2007-4-1

2.trunc(sysdate,'D')
本周的第一天(周日)

SQL> select trunc(sysdate,'D')from dual;

TRUNC(SYSDATE,'D')
------------------
2007-5-27

3.last_day(sysdate)
本月最后一天

SQL> select last_day(sysdate) from dual;

LAST_DAY(SYSDATE)
-----------------
2007-5-31 15:20:3

4.add_months(sysdate,2)
日期sysdate后推2个月


SQL> select add_months(sysdate,2) from dual;

ADD_MONTHS(SYSDATE,2)
---------------------
2007-7-29 15:21:14

5.next_day(sysdate,2)
日期sysdate之后的第一周中,2(指定星期的第几天)是什么日期

SQL> select next_day(sysdate,2) from dual;

NEXT_DAY(SYSDATE,2)
-------------------
2007-6-4 15:22:10

6.Months_between(f,s)
日期fs间相差月数

SQL> select months_between(sysdate,to_date('2007-04-12','yyyy-mm-dd'))from dual;

MONTHS_BETWEEN(SYSDATE,TO_DATE
------------------------------
1.56909908900836


7.
得到SYSDATE+5所在的月份

SQL> SELECT to_char(SYSDATE+5,'mon','nls_date_language=american') FROM dual;

TO_CHAR(SYSDATE+5,'MON','NLS_D
------------------------------
jun

8.current_date()
返回当前会话时区中的当前日期 。

9.select dbtimezone from dual;

10.extract()
找出日期或间隔值的字段值

SQL> select extract(month from sysdate) "This Month" from dual;

This Month
----------
5
SQL> select extract(year from sysdate) "This year" from dual;

This year
----------
2007
SQL> select extract(month from add_months(sysdate,2)) " Month" from dual;

Month
----------
7


============================================================================

三、一些实践后的用法:

1.
上月末天:
select to_char(add_months(last_day(sysdate),-1),'yyyy-MM-dd') LastDay from dual


2.
上月今天
SQL> select to_char(add_months(sysdate,-1),'yyyy-MM-dd') PreToday from dual;

3.
上月首天
SQL> select to_char(add_months(last_day(sysdate)+1,-2),'yyyy-MM-dd') firstDay from dual;

4.
要找到某月中所有周五的具体日期

SELECT to_char(b.a,'YY-MM-DD')
FROM ( SELECT trunc(SYSDATE,'mm')+ROWNUM-1 a
FROM dba_objects where rownum < 32 ) b
WHERE to_char(b.a,'day')='
星期五';


如果把where to_char(t.d, 'MM') = to_char(sysdate, 'MM')改成sysdate-90,即为查找当前月份的前三个月中的每周五的日期。


5.
得到系统当前月及以后的日期

select trunc(sysdate, 'MM')+ROWNUM-1 FROM dba_objects ;


-----------------------------------

to_date
字符串类型转为换日期类型
字符串中的相应位置上的字符,必须符合时间范围的限制

 

本文转自:http://hi.baidu.com/cuigq%5Fhr/blog/item/3625a986b1774427c75cc368.html

 

oracle相关文章:http://hi.baidu.com/cuigq%5Fhr/blog/category/oracle%BB%F9%B4%A1%D6%AA%CA%B6

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 同一个安全员被锁在两个项目怎么办 家长拖欠家教老师的课时费怎么办 合同没到期房东不退押金怎么办 租房合同没到期房东要违约怎么办 档案存放费交了一年的延期怎么办 天津房子卖了户口没地方迁怎么办 中国到美国读计算机硕士签证怎么办 在江苏大学去德国读研怎么办? 宿舍上下铺的床一动就响怎么办 自助取款机存款忘打印了凭条怎么办 高一新生跨省转学籍怎么办 网上买票不小心买成了学生票怎么办 做横幅标语字打出来老是歪的怎么办 创业板股票暂停上市后钱怎么办 新股东入股公司之前的亏损怎么办 目前公司账面亏损有人要入股怎么办 土地确权后没有土地的人怎么办 老板不发工资跑路了怎么办 别人登录了我的美团账号怎么办 月嫂家政公司快坚持不下去了怎么办 华硕飞马4a手机发热怎么办 超级必发指数手机页面没曲线怎么办 唐小僧理财暴雷了投资者该怎么办 教师资格证面试准考证号忘了怎么办 初中学校说处分不给毕业证怎么办? 自动档一键打火的车没电了怎么办 物流代收货款一直拿不到钱怎么办 丰巢快递柜收不到验证码怎么办 拼多多三级惩罚下架3天怎么办 在万达买的衣服穿一次烂了怎么办 内蒙古对于没有地的农民改怎么办 微信号码重新注册后回零钱怎么办 安卓系统文件苹果手机打不开怎么办 课题必须发表论文吗?查重怎么办 学信网学籍绑定输错5次怎么办 大学学校图书馆借的书丢了怎么办 借阅机里的图书不显示书名怎么办 苹果6s锁屏密码忘了怎么办 父亲去世后妈将父亲存款带走怎么办 狗和别的狗打架腿瘸了怎么办 神经病砍人警察不积极处理怎么办