oracle to_char 语法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle to_char 语法相关的知识,希望对你有一定的参考价值。

oracle 中 to_char 函数转换时如何指定字符串的长度,比如说sql中的convert(varchar(20),1234),还有类似的to_number。 谢谢

TO_CHAR 是把日期或数字转换为字符串,不能指定字符串长度。
使用TO_CHAR函数处理日期:
TO_CHAR(number, '格式') 例如:TO_CHAR(salary,’$99,999.99’)
使用TO_CHAR函数处理日期:
TO_CHAR(date,’格式’); TO_CHAR(newdate,’yyyy-mm-dd’)

指定字符串的长度可以使用lpad或者rpad或者substring:
lpad(字段名,填充长度,填充的字符) 左填充
rpad(字段名,填充长度,填充的字符) 右填充
substr( string, start_position, [ length ] )取得字符串中指定起始位置和长度的字符串追问

那这样的convert(varchar(20),1234),只能用类似to_char(1234,‘999999999999999’)这样来规定长度和格式对吧?谢谢

追答

是的,可以。

参考技术A TO_CHAR 是把日期或数字转换为字符串,不能指定字符串长度。
使用TO_CHAR函数处理日期:
TO_CHAR(number, '格式') 例如:TO_CHAR(salary,’$99,999.99’)
使用TO_CHAR函数处理日期:
TO_CHAR(date,’格式’); TO_CHAR(newdate,’yyyy-mm-dd’)
参考技术B 使用TO_CHAR函数处理数字
TO_CHAR(number, '格式')
TO_CHAR(salary,’$99,999.99’);
使用TO_CHAR函数处理日期
TO_CHAR(date,’格式’);

数字格式格式
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 数字的序数词

日期例子:
SELECT TO_DATE('2006-05-01 19:25:34', 'YYYY-MM-DD HH24:MI:SS') FROM DUAL
SELECT TO_DATE('2006-05-01 19:25', 'YYYY-MM-DD HH24:MI') FROM DUAL
SELECT TO_DATE('2006-05-01 19', 'YYYY-MM-DD HH24') FROM DUAL
SELECT TO_DATE('2006-05-01', 'YYYY-MM-DD') FROM DUAL
SELECT TO_DATE('2006-05', 'YYYY-MM') FROM DUAL
SELECT TO_DATE('2006', 'YYYY') FROM DUAL
参考技术C 这个我也想知道。。。

oracle中日期转换

oracle中,日期转换函数有很多,常用命令如下:

  • to_char()命令将时间戳转换为用户规定的日期格式,如:

SELECT TO_CHAR(sysdate,‘YYYY-MM-DD hh24:mi:ss‘) FROM DUAL;

语法:TO_CHAR(X [,format])

说明:将X按format格式转换成字符串。X可以是日期或者数字或时间戳,format是一个规定了X采用何种格式转换的格式字符串

  • to_date()命令可以将一个日期格式的字符串转换成date类型数据,如:

SELECT TO_DATE(‘2014-05-07 13:23:44‘,‘yyyy-mm-dd hh24:mi:ss‘) FROM DUAL;

语法:TO_DATE(C [,format])

说明:将符合format指定的特定日期格式的字符串C转换成DATE类型的数据

  • TO_TIMESTAMP()函数可以将一个时间格式的字符串转换成时间戳

SELECT TO_TIMESTAMP(‘2014-06-20 12:11:11‘,‘YYYY-MM-DD HH24:MI:SS‘) from dual;

语法:TO_TIMESTAMP(C [,format])

说明:将字符串C转换为一个时间戳数据类型

---to_char()命令可以将时间戳转换成字符串:
select to_char( TO_TIMESTAMP(‘2014-06-20 12:11:11‘,‘YYYY-MM-DD HH24:MI:SS‘),‘YYYY-MM-DD HH24:MI:SS‘) from dual;
  • 当需要进行两个日期的比较时,不需要比较时间,可采用trunc()命令来截取日期

SQL> select to_char( trunc(sysdate), ‘YYYY-MM-DD HH24:MI:SS‘) from dual;
SQL> select to_char( sysdate, ‘YYYY-MM-DD HH24:MI:SS‘) from dual;

以上是关于oracle to_char 语法的主要内容,如果未能解决你的问题,请参考以下文章

将 Oracle SQL 转换为 OBIEE Evaluate/TO_CHAR 函数

Oracle之to_char

十进制数、to_char 和 Oracle

oracle中to_char 的用法求解

oracle中日期转换

to_char()的用法