dual虚拟表的基础语句

限于喜欢 提交于 2020-01-11 04:59:50

dual虚拟表是为了完成select的语法

–获取系统时间
select sysdate from dual;

–获取系统日期
select current_timestamp from dual;

–将日期转换成字符串
select to_char(sysdate,‘yyyy-mm-dd hh24’) from dual;

– 将字符串转换成日期
select to_date(‘2019-09-11’,‘yyyy-mm-dd’) from dual;

–添加月份
select add_months(sysdate,3) from dual;

–获取一个月中的最后一天
select last_day(to_date(‘2018-08-08’,‘yyyy-mm-dd’)) from dual;

–计算两个日期之间的月份差
select months_between(sysdate,to_date(‘2018-08-08’,‘yyyy-mm-dd’)) from dual;

– 计算下个星期的具体日期
select next_day(sysdate,1) from dual;
select next_day(to_date(‘2018-08-08’,‘yyyy-mm-dd’),1) from dual;

–extract 获取部分日期
–获取年 月 日
select sysdate from dual;
select to_date(‘2018-08-08 08:08:08’,‘yyyy-mm-dd hh24:mi:ss’) from dual;
select extract(year from sysdate) from dual;
select extract(month from sysdate) from dual;
select extract(day from sysdate) from dual;

– 获取时 分 秒
select extract(minute from to_timestamp(‘2011-02-04 15:07:00’,‘yyyy-mm-dd hh24:mi:ss’)) from dual;

–获取绝对值
select abs(-1) from dual;

– x的y次方
select power(2,3) from dual;

–取模
select mod(10,3) from dual;

–四舍五入
select round(3.3333) from dual;

–开平方
select sqrt(100) from dual;

–向上取整
select ceil(3.333) from dual;

–向下取整
select floor(3.55555) from dual;

– y 不写, x 取整
select trunc(3.33) from dual;

– y 为正数, x保留y小数
select trunc(3.33333,2) from dual;

– y为负数 小数点左边y位变0
select trunc(33333.33333,-3) from dual;–33000

–获取当前日期
select trunc(sysdate,‘DD’) from dual;

–获取当前月的第一天
select trunc(sysdate,‘MM’) from dual;

SELECT TRUNC (SYSDATE, ‘DD’), --当天
TRUNC (SYSDATE, ‘MM’), --本月第一天
TRUNC (SYSDATE, ‘yyyy’), --本年第一天
TRUNC (SYSDATE, ‘day’), --本周第一天
TRUNC (SYSDATE, ‘q’) --本季度第一天
FROM DUAL;

– 将数字转换成字符
select chr(97) from dual;

–将字符转换成数字
select ascii(‘A’) from dual;

–连接字符串
select concat(‘AAAAA’,‘B’) from dual;

–删除左边空格
select ltrim(’ AAA ') from dual;

–转换成大写
select upper(‘aAbB’) from dual;

–转换成小写
select lower(‘aAbB’) from dual;

–替换 AAbcdefg
select replace(‘abcdefg’,‘a’,‘AA’) from dual;

– 替换 b–B f–中 c–’’
select translate(‘abcdefg’,‘bfc’,‘B中’) from dual;

– 右边截取
–截取x长度
select rpad(‘abcdefg’,3) from dual;

– 截取x长度, 原来长度不够, 用字符替换,补齐x位
select rpad(‘abcdefg’,10,‘12345678’) from dual;
–select lpad(‘abcdefg’,3) from dual;

–左边空格补齐x位
select lpad(‘abcdefg’,10) from dual;

–左边填充
select lpad(‘abcdefg’,10,‘123456789’) from dual;

–获取长度
select length(‘abcdefg’) from dual;

–截取子串 索引从1开始
select substr(‘abcdefg’,2) from dual;

–从索引开始, 截取y个数
select substr(‘abcdefg’,2,4) from dual;

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!