Oracle中与时间有关的计算

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

  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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式