Oracle数据库中神奇的dual表

DUAL是oracle中非常神奇的一张表,有好多人用了很久oracle都不知道dual是干什么的,因为不是自己设计的表,一般处理的SQL也用不到。这里简单说下DUAL的用法,知道之后很多情况下DUAL查询还是很方便的。

 

一、DUAL简介:

1. DUAL是一个单行单列的虚拟表,是sys用户下的一张内部表,所有用户都可以使用DUAL名称访问,无论什么时候这个表总是存在

2. 常用在没有目标表的select语句块,用来构成select的语法规则

3. DUAL里面永远只有一条记录

4. DUAL表主要用来选择系统变量或求一个表达式的值

5. DUAL就是个一行一列的表,如果你往里执行insert、delete、truncate、drop等操作会导致很多程序出问题,可以执行,但是执行后会引发很多问题。

 

二、DUAL常见用法:

DESC DUAL;--查看DUAL表结构

SELECT sysdate FROM DUAL;--获取当前系统日期

SELECT user FROM DUAL;--获取当前用户

SELECT to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) FROM DUAL;--获取当前系统日期(指定格式)

SELECT SYS_CONTEXT('USERENV','TERMINAL') FROM DUAL;--获得主机名

SELECT SYS_CONTEXT('USERENV','language') FROM DUAL;--获得当前 locale

SELECT to_char(sysdate,'IW') FROM DUAL;--获取当前日期,按照IW算法查看当前是第几周,一般用于创建表分区时查看当前周时间

注:参数中使用IW算法查询周数。IW算法为自然周,星期一到星期日为一周。且每年的第一个星期天为第一周,这样会把去年的最后几天当成今年的第一周日期。

另外还有WW算法。WW的算法为每年1月1日为第一周开始日,每一周开始日+6为一周结尾日。例如20210101为第一周的第一天,而第一周的最后一天为20210101+6=20210107。一般公司开发中多采用IW算法取周数。

 


 

 

3、to_char函数、to_number 函数、to_date 函数:

oracle中to_char函数的功能是将数值型或者日期型转化为字符型

to_number 字符转换为数字

to_date 字符转换为日期

 

4、to_char()函数常见使用:

select pack_id,to_char(crtdatetime,'MM/YY')  from pckinfo where sender = 'AICP2AMTP'
2052062070012 05/21

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss am')  from dual
2021-05-04 17:21:21 下午

select to_char(to_date('20-3月-21'),'yyyy-mm-dd hh24:mi:ss am')  from dual
2021-03-20 00:00:00 上午

select to_char(sysdate,'dd "of" month') from dual
04 of 5月

select to_char(syadate,'yyyy-mm-dd cc') from dual
2021-05-04 21
注:cc是世纪,如当前是21世纪。

select to_char(sysdate,'yy-mm-dd cc')  from dual
21-05-04 21

select to_char(sysdate,'y,yyy-mm-dd cc') from dual
2,021-05-04 21

 

 

 

 

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值