oracle数据库的 to_char 和to_date 区别

本文详细介绍了Oracle数据库中用于日期和数字转换的to_char和to_date函数,包括如何使用这些函数处理日期和数字,并提供了具体的语法示例。此外,文章还解释了数字和日期格式符号的含义,以及如何正确设置转换格式以避免错误。
摘要由CSDN通过智能技术生成
 

oracle数据库的 to_char 和to_date 区别

分类: Oracle   1534人阅读  评论(0)  收藏  举报

to_char 是把日期或数字转换为字符串
to_date 是把字符串转换为数据库中得日期类型
 转换函数
 TO_CHAR
使用TO_CHAR函数处理数字
TO_CHAR(number, '格式')
TO_CHAR(salary,’$99,999.99’);
使用TO_CHAR函数处理日期
  TO_CHAR(date,’格式’);
 TO_NUMBER
使用TO_NUMBER函数将字符转换为数字
TO_NUMBER(char[, '格式'])
 TO_DATE 
使用TO_DATE函数将字符转换为日期
TO_DATE(char[, '格式'])

 数字格式格式
9 代表一个数字
0 强制显示0
$ 放置一个$符
L 放置一个浮动本地货币符
. 显示小数点
, 显示千位指示符

 日期格式
格式控制 描述
YYYY、YYY、YY 分别代表4位、3位、2位的数字年
YEAR 年的拼写
MM 数字月
MONTH 月的全拼
MON 月的缩写
DD 数字日
DAY 星期的全拼
DY 星期的缩写
AM 表示上午或者下午
HH24、HH12 12小时制或24小时制
MI 分钟
SS 秒钟
SP 数字的拼写
TH 数字的序数词
“特殊字符” 假如特殊字符
HH24:MI:SS AM 15:43:20 PM
DD “OF” MONTH 12 OF OCTOBER
DDSPTH fourteenth
Date的格式   ’18-5月-84’

 

更详细的内容:

 

to_date("要转换的字符串","转换的格式")   两个参数的格式必须匹配,否则会报错。 

即按照第二个参数的格式解释第一个参数。 

to_char(日期,"转换格式" ) 即把给定的日期按照“转换格式”转换。 



转换的格式: 

表示year的:y  表示年的最后一位 yy 表示年的最后2位 yyy 表示年的最后3位 yyyy 用4位数表示年 

表示month的:mm 用2位数字表示月;mon 用简写形式 比如11月或者nov ;month 用全称 比如11月或者november 

表示day的:dd 表示当月第几天;ddd表示当年第几天;dy 当周第几天 简写  比如星期五或者fri;day当周第几天 全写 

比如星期五或者friday。 

表示hour的:hh 2位数表示小时 12进制; hh24 2位数表示小时 24小时 

表示minute的:mi 2位数表示分钟 

表示second的:ss 2位数表示秒 60进制 

表示季度的:q 一位数 表示季度 (1-4) 

另外还有ww 用来表示当年第几周 w用来表示当月第几周。 

24小时制下的时间范围:00:00:00-23:59:59 

12小时制下的时间范围:1:00:00-12:59:59 

比如: 

select to_char(sysdate,'yy-mm-dd hh24:mi:ss') from dual   //显示:08-11-07 13:22:42 

select to_date('2005-12-25,13:25:59','yyyy-mm-dd,hh24:mi:ss') from dual //显示:2005-12-25 13:25:59 

而如果把上式写作:select to_date('2005-12-25,13:25:59','yyyy-mm-dd,hh:mi:ss') from dual,则会报错,因为小时hh是12进制,13为非法输入,不能匹配。 

补充: 

当前时间减去7分钟的时间 
select sysdate,sysdate - interval '7' MINUTE from dual 
当前时间减去7小时的时间 
select sysdate - interval '7' hour from dual 
当前时间减去7天的时间 
select sysdate - interval ’7’ day from dual 
当前时间减去7月的时间 
select sysdate,sysdate - interval '7' month from dual 
当前时间减去7年的时间 
select sysdate,sysdate - interval '7' year from dual 
时间间隔乘以一个数字 
select sysdate,sysdate - 8*interval '7' hour from dual 



Dual伪列 

含义解释: 

Dual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的select语句块中。 

比如,我要获得系统时间,则用“select sysdate from dual” 则返回系统当前的时间:2008-11-07 9:32:49,不同系统可能返回日期的格式不一样。"select user from dual"则返回当前连接的用户。如果是"select 1+2 from dual",则返回结果:3

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值