综合例题及补充

news2025/1/19 19:38:43

目录

查询员工的编号、姓名、雇佣日期,以及计算出每一位员工到今天为止被雇佣的年数、月数、天数

计算出年

计算月

计算天数


Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645

查询员工的编号、姓名、雇佣日期,以及计算出每一位员工到今天为止被雇佣的年数、月数、天数

对于本查询而言,由于日期的跨度较长 ,所以要想准确地计算出结果,必须结合日期函数

计算出年

如果要计算年,按照月来计算是比较准确的,那么一定要使用 months_between() 函数进行月 的计算,而后除以 12 就是年

SQL> select empno,ename,hiredate,trunc(months_between(sysdate,hiredate)/12) year
  2  from emp;

     EMPNO ENAME                HIREDATE             YEAR
---------- -------------------- -------------- ----------
      7369 SMITH                17-12月-80             43
      7499 ALLEN                20-2月 -81             42
      7521 WARD                 22-2月 -81             42
      7566 JONES                02-4月 -81             42
      7654 MARTIN               28-9月 -81             42
      7698 BLAKE                01-5月 -81             42
      7782 CLARK                09-6月 -81             42
      7839 KING                 17-11月-81             42
      7844 TURNER               08-9月 -81             42
      7900 JAMES                03-12月-81             42
      7902 FORD                 03-12月-81             42

计算月

年的计算结果包含余数,余数实际上就是除 12 的结果,也就是月数。利用 mod() 函数可以求出余数

SQL> select empno,ename,hiredate,
  2  trunc(months_between(sysdate,hiredate)/12) year,
  3  trunc(mod(months_between(sysdate,hiredate),12)) months
  4  from emp;

     EMPNO ENAME                HIREDATE             YEAR     MONTHS
---------- -------------------- -------------- ---------- ----------
      7369 SMITH                17-12月-80             43          1
      7499 ALLEN                20-2月 -81             42         11
      7521 WARD                 22-2月 -81             42         11
      7566 JONES                02-4月 -81             42         10
      7654 MARTIN               28-9月 -81             42          4
      7698 BLAKE                01-5月 -81             42          9
      7782 CLARK                09-6月 -81             42          8
      7839 KING                 17-11月-81             42          2
      7844 TURNER               08-9月 -81             42          5
      7900 JAMES                03-12月-81             42          2
      7902 FORD                 03-12月-81             42          2

计算天数

现在所知道的计算天数的操作只有一个公式: “日期 1 - 日期 2 = 数字(天数) ” 。于是现在的问题 就集中在了日期的内容上

● 日期 1,一定是当前日期,使用 sysdate伪列

● 日期 2,实际上已经可以利用 months_between() 函数求出两个日期之间的月数

 

SQL> select empno,ename,hiredate,
  2  trunc(months_between(sysdate,hiredate)/12) year,
  3  trunc(mod(months_between(sysdate,hiredate),12)) months,
  4  trunc(sysdate-add_months(hiredate,months_between(sysdate,hiredate))) day
  5  from emp;

     EMPNO ENAME                HIREDATE             YEAR     MONTHS        DAY
---------- -------------------- -------------- ---------- ---------- ----------
      7369 SMITH                17-12月-80             43          1         27
      7499 ALLEN                20-2月 -81             42         11         24
      7521 WARD                 22-2月 -81             42         11         22
      7566 JONES                02-4月 -81             42         10         11
      7654 MARTIN               28-9月 -81             42          4         16
      7698 BLAKE                01-5月 -81             42          9         12
      7782 CLARK                09-6月 -81             42          8          4
      7839 KING                 17-11月-81             42          2         27
      7844 TURNER               08-9月 -81             42          5          5
      7900 JAMES                03-12月-81             42          2         10
      7902 FORD                 03-12月-81             42          2         10

 假设现在需要截取数据表中每个姓名的后三个字母,常用的做法如下。
首先一定要确认截取的开始点,每个姓名的长度不一样,所以开始点也不同。此时 最好的做法是使用 length() 来计算长度

SQL> select ename,substr(ename,length(ename)-2)
  2  from emp;

ENAME                SUBSTR(ENAME,LENGTH(ENAME)-2)
-------------------- --------------------------------------------------------------------------------
SMITH                ITH
ALLEN                LEN
WARD                 ARD
JONES                NES
MARTIN               TIN
BLAKE                AKE
CLARK                ARK
KING                 ING
TURNER               NER
JAMES                MES
FORD                 ORD

但是 substr() 可以设置负数索引,表示从后向前数

SQL> select ename,substr(ename,-3)
  2  from emp;

ENAME                SUBSTR(ENAME,-3)
-------------------- ------------------------
SMITH                ITH
ALLEN                LEN
WARD                 ARD
JONES                NES
MARTIN               TIN
BLAKE                AKE
CLARK                ARK
KING                 ING
TURNER               NER
JAMES                MES
FORD                 ORD

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1447307.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

S32 Design Studio的PE工具

S32 Design Studio软件是NXP公司专门为了方便用户开发S32K1系列芯片的IDE,跟Eclipse比较像。里面有个配套的图形工具Processor Expert,会产生一个后缀名为pe的文件,跟ST的cubemx作用类似。 双击pe文件即可打开pe界面,生成的文件将…

Codeforces Round 925 (Div. 3)

Codeforces Round 925 (Div. 3) Codeforces Round 925 (Div. 3) A. Recovering a Small String 题意:给出一个整数n,为三个26个字母的位置序号的和,输出字典序最小的三个字符的字符串。 思路:直接倒推,顺一遍&…

第6个-滚动动画

Day 6 - Scroll Animation 1. 演示效果 2. 分析思路 布局 所有的内容进行水平垂直居中,可以使用**margin:0 auto;,也可以使用flex**布局: body {background-color: #efedd6;display: flex;flex-direction: column;justify-content: center…

腾讯云幻兽帕鲁服务器配置怎么选择合适?

腾讯云幻兽帕鲁服务器配置怎么选?根据玩家数量选择CPU内存配置,4到8人选择4核16G、10到20人玩家选择8核32G、2到4人选择4核8G、32人选择16核64G配置,腾讯云百科txybk.com来详细说下腾讯云幻兽帕鲁专用服务器CPU内存带宽配置选择方法&#xff…

音视频剪辑|FFMPEG|windows10下的音视频格式转换,遮挡填充,GIF动图制作,背景音频抽取,替换

前言: 最近对于音视频和图像的处理问题比较感兴趣,但发现很多目前需要的功能要么需要付费但不会过于麻烦,要么比较麻烦,很可能某个功能实现需要安装很多软件 例如,视频转GIF动图,该功能的实现要么使用Pho…

VMware清理拖拽缓存 Ubuntu硬盘情况占用分析

这两天在尝试编译Linux源码,我在win上将源码下载下来然后复制到ubuntu上,这一步我粗略看到了三种方法:安装VM tools,就可以使文件正常的在win和ubuntu中复制剪切;使用scp命令将win和linux系统链接起来;使用…

P5440 【XR-2】奇迹 (大模拟dfs+欧拉筛板子+闰年)

传送门https://www.luogu.com.cn/problem/P5440 相信奇迹的人,本身就和奇迹一样了不起。——笛亚 《星游记》 思路历程:很离谱的一题,在理论上并不困难,只要简单dfs欧拉筛就能过。在一开始,我采用了倒着模拟的思路&am…

JavaWeb:关于登录认证的简单拓展

前提介绍 本文基于文章-------JavaWeb:SpringBootWeb登录认证 --黑马笔记 -------再做简单拓展 如果没有关于登录认证知识的基础,可以先看上面所说的的文章,文章在专栏javaweb中,下面我为了大家观看,直接放了链接。…

服务降级(Sentinel)

服务降级 采用 SentinelResource 注解方式实现, 必要的 依赖必须引入 以及 切面Bean 接口代码 RequestMapping("/degrade")SentinelResource(value DEGRADE_RESOURCE_NAME, blockHandler "blockHandlerForDegrade",entryType EntryType.IN…

Excel模板2:进度条甘特图

Excel模板2:进度条甘特图 ‍ 今天复刻B站up【名字叫麦兜的狗狗】的甘特图:还在买Excel模板吗?自己做漂亮简洁的甘特图吧!_哔哩哔哩_bilibili 阿里网盘永久分享:https://www.alipan.com/s/cXhq1PNJfdm 当前效果&…

2.13 数组练习

1、选择题 1.1、若有定义语句:int a[3][6]; ,按在内存中的存放顺序,a 数组的第10个元素是 B A)a[0][4] B) a[1][3] C)a[0][3] D)a[1][4] 解析:二维数组在内存中是以行优先的方式存放的。这意味着首先填充第一行的…

Excel练习:折线图突出最大最小值

Excel练习:折线图突出最大最小值 ​​ 要点:NA值在折现图中不会被绘制,看似一条线,实际是三条线。换成0值和""都不行。 ‍ 查看所有已分享Excel文件-阿里云 ‍ 学习的这个视频:Excel折线图&#xff0c…

java之jvm详解

JVM内存结构 程序计数器 Program Counter Register程序计数器(寄存器) 程序计数器在物理层上是通过寄存器实现的 作用:记住下一条jvm指令的执行地址特点 是线程私有的(每个线程都有属于自己的程序计数器)不会存在内存溢出 虚拟机栈(默认大小为1024kb) 每个线…

MySQL:常用指令

MySQL官网 一、在Windows 系统 cmd窗口里执行的命令 启动:net start MySQL停止:net stop MySQL卸载:sc delete MySQL 二、在macOS系统终端里执行的命令 启动:mysql.server start停止:mysql.server stop重启:mysql.server restart 三、执行帮…

微信小程序(四十四)鉴权组件插槽-登入检测

注释很详细,直接上代码 新增内容: 1.鉴权组件插槽的用法 2.登入检测示范 源码: app.json {"usingComponents": {"auth":"/components/auth/auth"} }app.js App({globalData:{//定义全局变量isLoad:false} })…

Excel模板1:彩色甘特图

Excel模板1:彩色甘特图 分享地址 当前效果:只需要填写进度, 其余效果都是自动完成的 。 阿里网盘永久分享:https://www.alipan.com/s/cXhq1PNJfdm ​省心。能用公式的绝不使用手动输入。 ​​ 这个区域以及标题可以手动输入…

react【四】css

文章目录 1、css1.1 react和vue css的对比1.2 内联样式1.3 普通的css1.4 css modules1.5 在react中使用less1.6 CSS in JS1.6.1 模板字符串的基本使用1.6.2 styled-components的基本使用1.6.3 接受传参1.6.4 使用变量1.6.5 继承样式 避免代码冗余1.6.6 设置主题色 1.7 React中添…

golang集成sentry: go-redis

网上没有找到go-redis集成sentry的库, 所以我简单实现了一个 代码: https://github.com/Shujie-Tan/go-redis-sentry 使用方法: import (redis_sentry "github.com/Shujie-Tan/go-redis-sentry" ) rdb : redis.NewClient(&re…

OpenCV-38 图像金字塔

目录 一、图像金字塔 1. 高斯金字塔 2. 拉普拉斯金字塔 一、图像金字塔 图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构。简单来说,图像金字塔是同一图像不同分辨率的子图…

单片机学习笔记---DS18B20温度传感器

目录 DS18B20介绍 模拟温度传感器的基本结构 数字温度传感器的应用 引脚及应用电路 DS18B20的原理图 DS18B20内部结构框图 暂存器内部 单总线介绍 单总线电路规范 单总线时序结构 初始化 发送一位 发送一个字节 接收一位 接收一个字节 DS18B20操作流程 指令介…