45IT.COM- 电脑学习从此开始!
DIY硬件教程攒机经验装机配置
设计Photoshop网页设计特效
系统注册表DOS系统命令其它
存储主板显卡外设键鼠内存
维修显卡CPU内存打印机
WinXPVistaWin7unix/linux
CPU光驱电源/散热显示器其它
修技主板硬盘键鼠显示器光驱
办公ExcelWordPowerPointWPS
编程数据库CSS脚本PHP
网络局域网QQ服务器
软件网络系统图像安全
页面导航: 首页 > 设计学院 > 网络编程 > 数据库 >

SQLcodeoracle日期函数集锦(2)

电脑软硬件应用网 45IT.COM 时间:2011-12-14 09:15 作者:佚名

 二、常用时间函数

  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) 日期f和s间相差月数

  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 字符串类型转为换日期类型

  字符串中的相应位置上的字符,必须符合时间范围的限制

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: baidushare.htm
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐知识