Oralce toChar的用法。

TO_CHAR中很多人格式化日期时会用 TO_CHAR(date,'YYYYMMDD HH24:MM:SS')

小心哦,这个格式是错的,被Java毒害了。

正确的格式串是:YYYYMMDD HH24:MI:SS

 

The following are number examples for the to_char function.

to_char(1210.73, '9999.9')would return '1210.7'
to_char(1210.73, '9,999.99')would return '1,210.73'
to_char(1210.73, '$9,999.00')would return '$1,210.73'
to_char(21, '000099')would return '000021'

 

The following is a list of valid parameters when the to_char function is used to convert a date to a string. These parameters can be used in many combinations.

 
ParameterExplanation
YEARYear, spelled out
YYYY4-digit year
YYY
YY
Y
Last 3, 2, or 1 digit(s) of year.
IYY
IY
I
Last 3, 2, or 1 digit(s) of ISO year.
IYYY4-digit year based on the ISO standard
QQuarter of year (1, 2, 3, 4; JAN-MAR = 1).
MMMonth (01-12; JAN = 01).
MONAbbreviated name of month.
MONTHName of month, padded with blanks to length of 9 characters.
RMRoman numeral month (I-XII; JAN = I).
WWWeek of year (1-53) where week 1 starts on the first day of the year and continues to the seventh day of the year.
WWeek of month (1-5) where week 1 starts on the first day of the month and ends on the seventh.
IWWeek of year (1-52 or 1-53) based on the ISO standard.
DDay of week (1-7).
DAYName of day.
DDDay of month (1-31).
DDDDay of year (1-366).
DYAbbreviated name of day.
JJulian day; the number of days since January 1, 4712 BC.
HHHour of day (1-12).
HH12Hour of day (1-12).
HH24Hour of day (0-23).
MIMinute (0-59).
SSSecond (0-59).
SSSSSSeconds past midnight (0-86399).
FFFractional seconds.

 

The following are date examples for the to_char function.

to_char(sysdate, 'yyyy/mm/dd');would return '2003/07/09'
to_char(sysdate, 'Month DD, YYYY');would return 'July 09, 2003'
to_char(sysdate, 'FMMonth DD, YYYY');would return 'July 9, 2003'
to_char(sysdate, 'MON DDth, YYYY');would return 'JUL 09TH, 2003'
to_char(sysdate, 'FMMON DDth, YYYY');would return 'JUL 9TH, 2003'
to_char(sysdate, 'FMMon ddth, YYYY');would return 'Jul 9th, 2003'

 

You will notice that in some examples, the format_mask parameter begins with "FM". This means that zeros and blanks are suppressed. This can be seen in the examples below.

to_char(sysdate, 'FMMonth DD, YYYY');would return 'July 9, 2003'
to_char(sysdate, 'FMMON DDth, YYYY');would return 'JUL 9TH, 2003'
to_char(sysdate, 'FMMon ddth, YYYY');would return 'Jul 9th, 2003'

The zeros have been suppressed so that the day component shows as "9" as opposed to "09".

 




Oracle函数to_char转化数字型指定小数点位数的用法

to_char,函数功能,就是将数值型或者日期型转化为字符型。

比如最简单的应用:

/*1.0123--->'1.0123'*/
Select TO_CHAR(1.0123) FROM DUAL
/*123--->'123'*/
Select TO_CHAR(123) FROM DUAL

 接下来再看看下面:

/*0.123 ---> '.123' */
SELEC TO_CHAR(0.123) FROM DUAL

 上面的结果 '.123' 在大多数情况下都不是我们想要的结果,我们想要的应该是 '0.123'。

我们来看一下to_char函数的具体用法:

TO_CHAR ( n [, fmt [, 'nlsparam']] )
该函数将NUMBER类型的n按数值格式fmt转换成VARCHAR2类型的值。'nlsparams'指定由数值格式的元素返回的字符,包括:

.小数点字符

.组分隔符

.本地钱币符号

.国际钱币符号

变元的形式为:

'NLS_NUMERIC_CHARACTERS="dg" NLS_CURRENCY="tcxt" NLS_ISO_CURRENCY=territory'

其中d为小数点字符,g为组分隔符。

例 :TO_CHAR (17145,'L099G999','NLS_NUMERIC_CHARACTERS=".," NLS_CURRENCY="NUD"')=NUD017,145

通过上面的了解,再查看fmt的一些格式,我们可以用以下表达式得到'0.123'的值:

/*0.123 ---> ' 0.123' */ 
Select TO_CHAR(0.123,'0.999') FROM DUAL
/*100.12 ---> '######' */ 
Select TO_CHAR(100.12,'0.999') FROM DUAL
/*1.12 ---> ' 1.120' */ 
Select TO_CHAR(1.12,'0.999') FROM DUAL

 ' 0.123'是出来了,可是前面又多了一个空格。

对于 100.12 的值却是######,以及'1.12'的值变成了 '1.120'。

我们重新确定一个新的需求:

1、去空格

2、小数点最多4位,最少保留2位。

    1--->'1.00';1.1--->'1.00';1.12-->'1.12';1.1234--->'1.1234';

    1.12345--->'1.1235'

最终实现如下:

/*
  FM :除空格  
  9999999.0099:允许小数点左边最大正数为7位,小数点右边最少2位,最多4位,且在第5位进行四舍五入
*/
 
Select TO_CHAR(123.0233,'FM9999999.0099') FROM DUAL

 

PLSQL小经验
一、 Oracle的to_char()函数功能很强大但是在用它格式化数值型数据时应该请注意以下几项。如果是小数如:0.23这样的数据经过to_char后再显示会变为.23,如果你为了让它显示出原来的0.23的话就得用To_char(要格式化的数值,’0.999’)保留三个小数,并显示但这里就要注意了。他为你截取小数的时候是四舍五入了。所以如果是要求截掉小数而不四舍五入的话就应该自己写个函数截下去后再规格化。以保证它不四舍五入。

二、 To_char(1.9999,’FM90.0999’)这个函数规格化时90.0999的含义是有9的地方如果有数字就显示如果没有数字就不显示,有0的地方在没有数字的时候也会有0来占位.但这样做也有一个很大的缺点,就是如果是整数时它也仍然会显示”.”,不要小瞧这个点,一般来讲页面上要显示的话这个点就是多余的.也给我们造成了不小的麻烦.还要自己再写函数来把这个小点搞定.

三、 对于日期型的Oracle倒时提供了一个好的处理方法,可以把日期做成数值型的.然后再To_char就能显示出你所需要的类型了.

四、 在使用select into时一定要注意,这种方法你一定要确认肯定会有数据被查出时才能使用.如果查询结果为空时会导致报错.还有一种情况是查出来的数据是多条也会报错.所以应该尽量便宜游标来做.会减少错误产生的机率.

五、 还有注意一点rownum不支持排序,就是说你想用这个来控制行数的话就会发现他没有按你指定的排序方式显示.,这是一个很难办的事.而且如果你用rownum=2这样的语句来输出第二行的话也是行不通的. 六、 最恶心的一点是Oracle对null的判断变态到极点.如果你说某个变量 aa=null它是判断不出来的.尽管aa的确是空.即使在选择条件里也是判断不出来的.不知道为什么,只好用nvl()这个函数来判断了.在条件之外可以用 aa is null 来判断.

六 补充一点.就是在写存储过程时要注意参数名不能与数据库字段名相同.否则Oracle会把这个参数名看成是字段名的,即使你用表的别名区分也不行.所以起参数名的时候一定要注意这点了. 

<script type="text/javascript"></script>

Oracle的TO_CHAR与TO_DATE函数,转换格式一步到位 它有两个参数:一个是待转换的字符串,另一个是格式字符串,用于定义字符串中的数字格式。它有两个参数:一个是待转换的字符串,另一个是格式字符串,用于指定字符串的格式。函数用于将日期型数据或数字型数据转换为字符串。:由于格式字符串中规定了千分位符号,但在待转换字符串中未使用千分位符号,导致转换失败。格式字符串用于定义数字的显示格式,表示带有千分位符号和小数点的货币格式。是格式字符串,表示将日期按照"年-月-日 星期几"的格式显示出来。告诉Oracle如何解释字符串中的各部分,使其转换为正确的日期。 阅读详情

相关推荐

oracle TO_CHAR()常规用法

oracle TO_CHAR()常规用法

z19861216的博客 2479

Oracle函数大全一百零一:TO_CHAR函数

函数名TO_CHAR功能:将数字、日期或时间戳转换为字符串。参数转换的对象(数字、日期或时间戳)。格式模型(可选),指定如何格式化转换后的字符串。返回类型VARCHAR2。

yixiaobing的博客 4939

从零开始:手把手教你用Verilog搭建一个可配置的Cache模块(以Vortex GPGPU为例)

本文详细介绍了如何使用Verilog从零开始搭建一个可配置的Cache模块,以Vortex GPGPU为例。内容涵盖Cache设计基础、模块接口与参数化设计、核心子模块实现、仲裁与一致性机制、功能验证与性能调优等关键环节,适合RTL设计初学者和希望深入理解Cache工作原理的工程师。通过实战指南,读者可以掌握硬件代码分析技巧,提升Cache模块的设计能力。

weixin_42552315的博客 441

Oracle日期函数to_char的使用方式

1) to_char(日期,'格式') 提取日期中的元素 -- ※※※※※※※※。to_char(sysdate,'day') 汉字星期,to_char(sysdate,'dy') 汉字星期二,select to_char(sysdate,'yyyy') 年,to_char(sysdate,'d') 数字星期,to_char(sysdate,'q') 季度 ,to_char(sysdate,'hh') 时,to_char(sysdate,'mi') 分,to_char(sysdate,'ss') 秒,

qq_49974844的博客 4163

Ubuntu24.04/20.04设置网络共享文件夹

Ubuntu20.04利用向日葵远程控制时,不能传输文件。使用linux版本QQ来传输是可以的,不过linuxqq功能真的很弱。因此,打算在Ubuntu系统中建立一个共享文件夹,可在局域网中访问。 1、新建共享文件夹 获取root权限,或者登陆root账户。可在/home文件夹(或其它文件夹)下新建一个文件夹,如share。 右击文件夹,选择“本地网络共享”菜单。按下图设置。 点击确定。如果系统已经安装了samba服务器,就可以进入第3步。如果没有,会提示安装,按提示安装,可能会出错,可进.

willhu2008的专栏 2万+

BMS | 从一串到几百串硬件架构简介

锂电池在生活中越来越多的方面扮演能源的角色,除了大家熟知的电动汽车行业,在一些消费类,工业类电子产品比如手机,电动自行车,电动工具中都有应用,追本溯源今天我们一起来学习下最基础的BMS架构。 1~4串架构 以S8241为代表的无通信/无固件/模拟器件 可实现过充保护、过放保护、过流/短路,参数由器件后缀代码决定;通信类手持设备供电系统;1~4节电池保护板架构 如图使用S-8241系列保护IC,一对充放电MOS管控制充放电的回路的切断和接通,系统供电来自于电芯电压,VM引脚用于检测过...

ningvay的博客 9920

TO_CHAR(DATE,FORMAT)详解

SYSDATE 2009-6-16 15:25:10   TRUNC(SYSDATE) 2009-6-16   TO_CHAR(SYSDATE,'YYYYMMDD') 20090616 到日 TO_CHAR(SYSDATE,'YYYYMMDD HH24:MI:SS') 20090616 15:25:10 到秒

耳畔的声的博客 1184

STM32实战:如何用GPS信号同时同步海康摄像头和Livox Mid-360雷达(附完整接线图)

本文详细介绍了如何利用STM32实现GPS信号分频,同步海康摄像头和Livox Mid-360雷达的时间同步方案。通过硬件架构设计、STM32信号处理核心实现及设备接口规范,解决了多传感器数据融合中的时间对齐难题,适用于自动驾驶和机器人导航领域。

weixin_29182481的博客 596

Oralce之时间转换用法 TO_CHAR(DATE,FORMAT)

1. 本周,本月,本年 --本周 select trunc(sysdate, 'd') + 1 from dual;--周一 select trunc(sysdate, 'd') + 7 from dual;--周日 --本月 select trunc(sysdate, 'mm') from dual;--本月第一天 select last_day(trunc(sysdate))

持之以恒方能成功.... 1392

LSF调度实战:如何用bsub命令实现多队列资源抢占与公平调度

本文深入探讨了LSF作业调度系统的高级实战技巧,重点解析如何通过配置`lsb.queues`文件与灵活运用`bsub -R`命令,构建一套兼顾效率与公平的多队列资源抢占与调度体系。文章详细介绍了队列优先级设计、公平共享机制、资源感知调度以及抢占策略的实施,帮助集群管理员解决高优先级任务等待、资源分配不均等常见问题,实现计算资源的精细化管理和高效利用。

vvv99的博客 218

152:vue+leaflet 判断一个点是否在一个电子围栏内

本文介绍了一个基于Vue+Leaflet的示例,演示如何判断点是否在电子围栏内。作者大剑师兰特(优快云知名博主)展示了使用polygon.getBounds().contains(latlng)方法检测点与多边形边界的关系。代码仅需80行,通过点击地图触发判断逻辑,结果显示提示信息。该技术可广泛应用于地理围栏、位置服务等场景,需要安装turf依赖。文章提供了完整源码和配置说明,适合GIS开发者学习参考。

大剑师兰特的GIS世界 758

oralce的to_date()和to_char()函数使用

创建表:test create table TEST (   ID       NUMBER,   NAME     VARCHAR2(20),   BIRTHDAY DATE ) insert into test values (1,'name',sysdate); 这个sysdate的时间是:2012-9-19 11:58:08 如果使用to_

彻底拆分,一切可控! 781

ArcGIS Pro SDK (二十五)工作流管理器

【代码】ArcGIS Pro SDK (二十五)工作流管理器。

Winemonk 494

oralce中to_char默认转换格式的理解

select concat('4', to_char(02, '09')) from dual;结果为4 02 因为9是占位如果左边起是o会自动隐藏,0是强制显示如果左右是0一样显示,非0也显示,因为数值分正负,正好‘+’会自动隐藏,负号‘-’则不会隐藏,这就是上面为什么有个空格的原因。 select concat('4', to_char(02, 'FM09')) from dual;结果为...

weixin_33825683的博客 199

PCL 计算点云包围球【2025最新版】

包围球通常用于简单排斥,因为与球体相交的方程很简单,同样重要的是,旋转一个球体并不会改变其范围。因此,当包围球用于简单排斥时,如果球体中心是对象的原点,则可以忽略对象的方向。

点云侠的博客 2068

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

oracle 一分钟能能查,有关Oracle 查询时间的记录 (1)

写在前面在使用Oracle数据开发的时候,经常会使用到Oracle的日期的查询。以下总结有关Oracle日期查询相关。一、年、月、日、季、周1.年SELECT TO_CHAR(SYSDATE,'YYYY')||'年' FROM DUAL;2.月SELECT TO_CHAR(SYSDATE,'MM')||'月' FROM DUAL;3.日SELECT TO_CHAR(SYSDATE,'DD')||'...

weixin_42360778的博客 539

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【转】如何更改Oracle字符集避免乱码

如何更改Oracle字符集避免乱码 转自: https://www.cnblogs.com/andy6/p/5701219.html 转一位大神的笔记。 国内最常用的Oracle字符集ZHS16GBK(GBK 16-bit Simplified Chinese)能够支持繁体中文,并且按照2个字符长度存储一个汉字。UTF8字符集是多字节存储,1个汉字(简体、繁体)有时采用3个字符长度...

weixin_30587927的博客 84

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

mysql相似于oracle的to_char() to_date()方法

mysql日期和字符相互转换方法 date_format(date,’%Y-%m-%d’) ————–>oracle中的to_char(); str_to_date(date,’%Y-%m-%d’) ————–>oracle中的to_date();%Y:代表4位的年份 %y:代表2为的年份%m:代表月, 格式为(01……12) %c:代表月, 格式为(1……12)%d:代表月份

programer_bei的博客 592

ORACLE 汉字转拼音 在数据库编码为UTF8时 正常转换

修改网上的汉字转拼音包,将部分代码替换吧         --原来的取汉字的编码,获得高低位         --n_ascii := ascii(v_char);         --n_ord_high := trunc(n_ascii/256,0);         --n_ord_low := n_ascii-(n_ord_high*256);         --DBMS_OU

Lixiang3024的专栏 2600

Oracle to_char() 和to_date()的使用

to_char() 函数和to_date()函数有时会同时使用,具体语法我这里就不多说了,   重点:使用to_char()和to_date()函数都是为了格式转换,Oralce 只支持相同的数据类型进行比较,运算  无论怎么转化,目的都是为了使用相同的数据类型,记住这点,具体的语句可以查询相关的文档即可解决问题。 如   select o.createtime from organ...

xinglei200909931的博客 221

Oracle函数大全一百零三:TO_DATE函数

函数名TO_DATE功能:将字符串转换为日期数据类型。参数string:要转换为日期的字符串。format(可选):指定字符串中日期的格式。如果不提供此参数,则会使用会话的NLS_DATE_FORMAT参数所定义的格式。(可选):用于指定语言环境,影响日期格式中的月份和星期的显示名称。返回类型:DATETO_DATE函数是Oracle数据库中用于将字符串转换为日期类型的函数,它接受一个字符串和一个可选的日期格式模板作为参数,并返回一个日期类型的值。

yixiaobing的博客 7841

Oracle数据库:数字函数,日期函数,round,trunc,mod,months_between,add_months,next_day,last_day,sysdate

Oracle数据库:数字函数,日期函数,round,trunc,mod,months_between,add_months,next_day,last_day,sysdate

weixin_46838716的博客 1279

oracle to_char函数的使用

Oracle to_char函数的功能是将数值型或者日期型转化为字符型,下面就为您详细介绍Oracle to_char函数的使用,希望对您能有所帮助。 Postgres 格式化函数提供一套有效的工具用于把各种数据类型(日期/时间,int,float,numeric)转换成格式化的字符串以及反过来从格式化的字符串转换成原始的数据类型。 注意:所有格式化函数的第二个参数是用于转换的模板。 表 5-7. 格式化函数 函数 返回 描述 例子 to_char(timestamp, text) text 把 times

l_iulei的博客 2362

Oracle中TO_DATE与TO_CHAR区别

在Oracle中,TO_CHAR函数用于将日期值转换为字符串,而TO_DATE函数则用于将字符串转换为日期值。

hay23455的博客 1905

Oracle to_char可以转换哪些类型的数据

你可以指定日期格式模型来控制日期的显示方式,例如显示日期、时间、时区等。此外,你还可以使用NLS_DATE_FORMAT参数来设置默认的日期格式,这样在使用TO_CHAR函数时就不需要指定格式模型了。在使用TO_CHAR函数时,你可以通过指定不同的格式模型来控制转换后的字符串的显示方式。在Oracle数据库中,使用TO_CHAR函数将日期类型转换为字符串时,可以使用多种日期格式模型(date format models)。请注意,TO_CHAR函数中的日期格式模型是区分大小写的。

zz_ll9023的博客 2131
上一篇: EXTJS"病毒"
下一篇: JAVAFX2的未来
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值