ORACLE SQL单行函数(二)【weber出品必属精品】
11.dual:虚表,任何用户都可以使用,表结构如下:
SQL> desc dual
Name Null? Type
----------------------------------------- -------- ----------------------------
DUMMY VARCHAR2()
12.dual的作用:
1. 查询数据库系统日期
2. 进行四则运算
SQL> select sysdate from dual; ---这里查询数据库系统日期 SYSDATE
---------
-AUG-
SQL> select * from dual; ---这里进行四则运算 *
---------- SQL> select 'abc' from dual; ---这里进行字符串的输出 'AB
---
abc
13.日期的格式:
默认的格式:DD-MON-RR
如何改变日期的格式:nls_date_format
SQL> alter session set nls_date_format='yyyy--mm--dd hh24:mi:ss'; ---修改日期格式 Session altered. SQL> select sysdate from dual; SYSDATE
---------------------
---- ::
14.日期的计算
两个日期相减得到是天数:
SQL> select sysdate,hiredate,sysdate-hiredate from emp; SYSDATE HIREDATE SYSDATE-HIREDATE
------------------- ------------------- ----------------
-- :: -- :: 12294.3832
-- :: -- :: 12229.3832
-- :: -- :: 12227.3832
-- :: -- :: 12188.3832
-- :: -- :: 12009.3832
-- :: -- :: 12159.3832
-- :: -- :: 12120.3832
-- :: -- :: 9980.38319
-- :: -- :: 11959.3832
-- :: -- :: 12029.3832
-- :: -- :: 9946.38319
-- :: -- :: 11943.3832
-- :: -- :: 11943.3832
-- :: -- :: 11892.3832
计算周数只需要除以7即可
SQL> select sysdate,hiredate,sysdate-hiredate from emp; SYSDATE HIREDATE SYSDATE-HIREDATE
------------------- ------------------- ----------------
-- :: -- :: 12294.3832
-- :: -- :: 12229.3832
-- :: -- :: 12227.3832
-- :: -- :: 12188.3832
-- :: -- :: 12009.3832
-- :: -- :: 12159.3832
-- :: -- :: 12120.3832
-- :: -- :: 9980.38319
-- :: -- :: 11959.3832
-- :: -- :: 12029.3832
-- :: -- :: 9946.38319
-- :: -- :: 11943.3832
-- :: -- :: 11943.3832
-- :: -- :: 11892.3832
给日期减去1,效果作用在天上
SQL> select hiredate,hiredate- from emp; HIREDATE HIREDATE-
--------------------- ---------------------
---- :: ---- ::
---- :: ---- ::
---- :: ---- ::
---- :: ---- ::
---- :: ---- ::
---- :: ---- ::
减少一小时,增加也是一样:
SQL> select sysdate,sysdate-/() from dual; SYSDATE SYSDATE-/()
--------------------- ---------------------
---- :: ---- ::
增加一分钟:
SQL> select sysdate ,sysdate+/(*) from dual; SYSDATE SYSDATE+/(*)
--------------------- ---------------------
---- :: ---- ::
增加一秒钟:
SQL> select sysdate,sysdate+/(**) from dual; SYSDATE SYSDATE+/(**
------------------- -------------------
-- :: -- ::
15.日期函数
MONTHS_BETWEEN:两个日期之间的月数
SQL> select hiredate,sysdate,months_between(sysdate,hiredate) from emp; HIREDATE SYSDATE MONTHS_BETWEEN(SYSDATE,HIREDATE)
------------------- ------------------- --------------------------------
-- :: -- :: 403.947992
-- :: -- :: 401.851218
-- :: -- :: 401.786701
-- :: -- :: 400.431863
-- :: -- :: 394.593153
-- :: -- :: 399.464121
-- :: -- :: 398.206056
-- :: -- :: 327.883476
ADD_MONTHS:为一个日期增加月份:
SQL> select sysdate,add_months(sysdate,) from dual; SYSDATE ADD_MONTHS(SYSDATE,)
--------------------- ---------------------
---- :: ---- ::
NEXT_DAY:一个日期的下一个指定日子(例如:星期五)的日期
SQL> select sysdate ,next_day(sysdate,'friday') next_day from dual; SYSDATE NEXT_DAY
--------------------- ---------------------
---- :: ---- ::
LAST_DAY:某个月份的最后一天
SQL> select sysdate ,last_day(sysdate) from dual; SYSDATE LAST_DAY(SYSDATE)
--------------------- ---------------------
---- :: ---- ::
对日期进行截取:
ROUND:要进行四舍五入
TRUNC:不进行四舍五入
SQL> select sysdate,round(sysdate) round,trunc(sysdate) trunc from dual; SYSDATE ROUND TRUNC
--------------------- --------------------- --------------------
2014--08--15 15:21:58 2014--08--16 00:00:00 2014--08--15 00:00:00
16. 转换函数
数据类型转换方式:
1. 隐士转换,也叫自动转换
2. 显示转换,通过转换函数进行转换
TO_CHAR函数:可以把数字和日期转换为字符
TO_CHAR(date, 'format_model'):将日期转换为字符 format_model是:日期的格式
SQL> select sysdate,to_char(sysdate,'mm-dd-yyyy hh24:mi:ss') from dual; SYSDATE TO_CHAR(SYSDATE,'MM
--------------------- ------------------- ---按照日期格式将格式转换后输出
---- :: -- ::
Format_model:
1、日期格式必须用单引号括起来,并且是大小写敏感的
2、日期格式必须是可用的
3、前面加上 fm字符以压缩掉开始和结束的空格或者前置的零
4、同日期值用逗号隔开
SQL> select sysdate,to_char(sysdate,'YYYY') from dual; SYSDATE TO_C
--------------------- ----
---- ::
验证:日期格式必须用单引号括起来,并且是大小写敏感的
SQL> select sysdate,to_char(sysdate,'YEAR') from dual; SYSDATE TO_CHAR(SYSDATE,'YEAR')
--------------------- ------------------------------------------
---- :: TWENTY FOURTEEN SQL> select sysdate ,to_char(sysdate,'year') from dual; SYSDATE TO_CHAR(SYSDATE,'YEAR')
--------------------- ------------------------------------------
---- :: twenty fourteen
验证:简写和祥写的不同 ---日期元素区分大小写
SQL> select sysdate,to_char(sysdate,'mm'),to_char(sysdate,'month') from dual; SYSDATE TO TO_CHAR(SYSDATE,'MONTH')
--------------------- -- ---------------------------
---- :: august SQL> select sysdate,to_char(sysdate,'dy'),to_char(sysdate,'day') from dual; SYSDATE TO_CHAR(S TO_CHAR(SYSDATE,'DAY')
--------------------- --------- ---------------------------
---- :: fri friday SQL> select sysdate,to_char(sysdate,'DY'),to_char(sysdate,'DAY') from dual; SYSDATE TO_CHAR(S TO_CHAR(SYSDATE,'DAY')
--------------------- --------- ---------------------------
---- :: FRI FRIDAY
日期中时间部分的格式:
SQL> select sysdate,to_char(sysdate,'yyyy/mm/dd hh24:mi:ss pm') time from dual; SYSDATE TIME
--------------------- ----------------------
---- :: // :: pm
增加字符串需要用双引号将字符串括起来:
SQL> select sysdate,to_char(sysdate,'day "of" month') string from dual; SYSDATE STRING
------------------- ---------------------------------------------
-- :: friday of august
fm:去掉日期元素前置的零和空格
SQL> select sysdate,to_char(sysdate,'fmyyyy-mm-dd hh24:mi:ss am') 去掉空格 from dual; SYSDATE 去掉空格
--------------------- ----------------------
---- :: -- :: pm ---08前面的0被去掉了
在一个数字前面显示$符号 ---$不管在9999.99的前面还是后面,结果显示都是在9999.99的前面。
SQL> select ename,sal,to_char(sal,'9999.99$') from emp; ENAME SAL TO_CHAR(S
------ ----- ---------
SMITH $800.00
ALLEN $1600.00
WARD $1250.00
JONES $2975.00
MARTIN $1250.00
BLAKE $2850.00
CLARK $2450.00
SCOTT $4000.00
KING $5000.00
TURNER $1500.00
ADAMS $1100.00
JAMES $950.00
FORD $3000.00
MILLER $1300.00
如果9999.99变成了999.99,大于1000的数字则会显示乱码。
SQL> select ename,to_char(sal,'999.99') from emp; ENAME TO_CHAR
---------- -------
SMITH 800.00
ALLEN #######
WARD #######
JONES #######
MARTIN #######
BLAKE #######
CLARK #######
SCOTT #######
KING #######
ORACLE SQL单行函数(二)【weber出品必属精品】的更多相关文章
- ORACLE SQL 组函数【weber出品必属精品】
组函数:对一组数据进行加工,每组数据返回一个值 常用的组函数:count() avg() max() min() sum() count()函数 1. count(*) :返回总共的行 ...
- 创建存储过程和函数【weber出品必属精品】
一.什么是存储过程和函数 1. 是被命名的pl/sql块 2. 被称之为pl/sql子程序 3. 与匿名块类似,有块结构: 声明部分是可选的(没有declare关键字) 必须有执行部分 可选的异常处理 ...
- oracle数据库事务相关【weber出品必属精品】
事务的概念:事务:一个事务由一组构成一个逻辑操作的DML语句组成 事务有开始有结束,事务以DML语句开始,以Conmmit和Rollback结束.以下情况会使得事务结束: 1. 执行COMMIT 或者 ...
- 全世界最详细的图形化VMware中linux环境下oracle安装(二)【weber出品必属精品】
<ORACLE 10.2.05版本的升级补丁安装> 首先我们解压 $ unzip p8202632_10205_LINUX.zip 解压后我们会发现多出了个文件夹,他是:Disk1,进入D ...
- 全世界最详细的图形化VMware中linux环境下oracle安装(一)【weber出品必属精品】
安装流程:前期准备工作--->安装ORACLE软件--->安装升级补丁--->安装odbc创建数据库--->安装监听器--->安装EM <前期准备工作> 安装 ...
- ORACLE SQL单行函数(三)【weber出品必属精品】
16.L:代表本地货币符,这个和区域有关.这个时候我们想来显示一下人民币的符号:¥ $ vi .bash_profile ---写入如下内容: export NLS_LANG='SIMPLIFIED ...
- ORACLE SQL单行函数(一)【weber出品必属精品】
1.SUBSTR:求父串中的子串 SUBSTR('HelloWorld',1,5) 1:代表子串的起始位置,如果为正,正数,如果为负,倒数 5:代表字串的终止位置,只能向右数,可以省略,如果省略就是数 ...
- 静默安装ORACLE【weber出品必属精品】
安装配置系统环境安装linux ,所有服务都不选择,只是选择安装开发工具,不要安装防火墙(当然也可以在后面关闭) 打开终端,执行如下命令,检查安装包,没有的都要安装 make, glibc, liba ...
- 全世界最详细的图形化VMware中linux环境下oracle安装(三)【weber出品必属精品】
数据库软件和数据库都建好了,基本上可以说完成90%的工作,但是美中不足的就是企业管理器还没有安装好,现在我们就开始安装企业管理器吧. 安装之前我们先将补丁给补上.补丁我们也是采用禁默安装.补丁:p83 ...
随机推荐
- Catel帮助手册-Catel.Core(6):日志管理
1,简介 从2.2版本开始,Catel使用了一个自定义的日志系统,这种方式,针对log4net的引用可以被移除,做这个修改主要是为了不强迫用户使用log4net,同时,log4net看起来很 ...
- Swift 变量、常量、数据类型
import Foundation print("HelloSwift") // 声明变量 var a = var b = a = b = // 常量 let c = a+b va ...
- Linux编程遇到的问题汇集(持续更新中)
1.源代码编译redis报告错误: undefined reference to `__sync_add_and_fetch_4' 最近项目组在实验Redis,源代码编译的时候,遇到了错误:undef ...
- ASP.NET MVC 4.0的Action Filter
有时候你想在调用action方法之前或者action方法之后处理一些逻辑,为了支持这个,ASP.NET MVC允许你自定义创建action过滤器.Action过滤器是自定义的Attributes,用来 ...
- 文成小盆友python-num9 socket编程
socket编程 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. Socket的英文原义是“孔”或“插座”.作为BSD UNIX的进程通信机制,取后一种意思 ...
- C程序设计语言练习题1-12
练习1-12 编写一个程序,以每行一个单词的行驶打印其输入. 代码如下: #include <stdio.h> // 包含标准库的信息. int main() // 定义名为main的函数 ...
- SSH登陆错误 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
今天遇到问题,删除文件即搞定!! ~~~~~~~~~~~~~~ SSH登陆错误 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! Connectio ...
- windows 挂载linux nfs
windwos挂载linux主机NFS 启动windos NFS客户端服务: 1. 打开控制面板->程序->打开或关闭windows功能->NFS客户端 勾选NFS客户端,即开启wi ...
- bzoj2929 [Poi1999]洞穴攀行
Description 一队洞穴学者在Byte Mountain的Grate Cave里组织了一次训练.训练中,每一位洞穴学者要从最高的一个室到达最底下的一个室.他们只能向下走.一条路上每一个连续的室 ...
- 面试题32.从1到n整数中1出现的次数
题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数.例如输入12,从 1到12这些整数中包含1的数字中1,10,11和12,1一共出现了5次 本题可以直接变量1到n的n个数然后分别计 ...