Oracle中与时间有关的计算

 我来答
抛下思念17
2022-11-18 · TA获得超过1.1万个赞
知道大有可为答主
回答量:6691
采纳率:99%
帮助的人:38.8万
展开全部

  Oracle中与时间有关的计算

  [sql]

  # sysdate+ /         加 小时

  # sysdate+ / /      加 分钟

  # sysdate+ / / /   加 秒钟

  #

  SQL> alter session set nls_date_format= yyyy MM dd hh :mi:ss ;

  Session altered

  SQL> select sysdate sysdate+ / sysdate+ / / sysdate+ / / / from dual;

  SYSDATE             SYSDATE+ /         SYSDATE+ / /      SYSDATE+ / / /

  

   : : : : : : : :

  SQL> 获取本周第一天

  SQL> select trunc(sysdate day ) from dual;

  TRUNC(SYSDATE DAY

  

   : :

  SQL> 获取本周最后一天

  SQL> select trunc(sysdate day ) + / / / from dual;

  TRUNC(SYSDATE DAY

  

   : :

  SQL> 获取下周第 n 天

  SQL> select trunc(next_day(sysdate )) trunc(next_day(sysdate )) from dual;

  TRUNC(NEXT_DAY(SYSD TRUNC(NEXT_DAY(SYSD

  

   : : : :

  SQL>

  SQL> 获取上月第一天

  SQL> select trunc(add_months(sysdate ) month ) from dual;

  TRUNC(ADD_MONTHS(SY

  

   : :

  SQL> select to_date(to_char(add_months(sysdate ) yyyy MM ) yyyy MM ) from dual;

  TO_DATE(TO_CHAR(ADD

  

   : :

  SQL> 获取本月第一天

  SQL> select trunc(sysdate month ) from dual;

  TRUNC(SYSDATE MONT

  

   : :

  SQL> select to_date(to_char(sysdate yyyy MM ) yyyy MM ) from dual;

  TO_DATE(TO_CHAR(SYS

  

   : :

  SQL> 获取本月最后一天

  SQL> select trunc(last_day(sysdate)) + / / / from dual;

  TRUNC(LAST_DAY(SYSD

  

   : :

  SQL> select add_months(trunc(sysdate month ) ) / / / from dual;

  ADD_MONTHS(TRUNC(SY

  

   : :

  SQL>

  SQL> 获取本季度第一天

  SQL> select trunc(sysdate Q ) from dual;

  TRUNC(SYSDATE Q )

  

   : :

  SQL> 获取本季度最后一天

  SQL> select add_months(trunc(sysdate Q ) ) / / / from dual;

  ADD_MONTHS(TRUNC(SY

  

   : :

  SQL>

  SQL> 获取去年第一天(因为闰年平年天数不一样 所以不能使用加减 或 天 来计算年份)

  SQL> select trunc(trunc(sysdate year ) year ) from dual;

  TRUNC(TRUNC(SYSDATE

  

   : :

  SQL> 获取今年第一天

  SQL> select trunc(sysdate year ) from dual;

  TRUNC(SYSDATE YEAR

  

   : :

  SQL> select to_date(to_char(sysdate yyyy )|| yyyy MM dd ) from dual;

  TO_DATE(TO_CHAR(SYS

  

   : :

  SQL> 获取今年最后一天

  SQL> select trunc(add_months(sysdate ) year ) / / / from dual;

  TRUNC(ADD_MONTHS(SY

  

   : :

  SQL> select to_date(to_char(sysdate yyyy )|| : : yyyy MM dd hh :mi:ss ) from dual;

  TO_DATE(TO_CHAR(SYS

  

   : :

  SQL>

  SQL> 计算相差的天数

  SQL> select round(to_number(to_date( : : yyyy MM dd hh :mi:ss ) to_date( : : yyyy MM dd hh :mi:ss ))) value from dual;

  VALUE

  

  

  SQL> 计算相差的小时数

  SQL> select round(to_number(to_date( : : yyyy MM dd hh :mi:ss ) to_date( : : yyyy MM dd hh :mi:ss )) * ) value from dual;

  VALUE

  

  

  SQL> 计算相差的分钟数

  SQL> select round(to_number(to_date( : : yyyy MM dd hh :mi:ss ) to_date( : : yyyy MM dd hh :mi:ss )) * * ) value from dual;

  VALUE

  

  

lishixinzhi/Article/program/Oracle/201311/18017

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式