- 전체
- Sample DB
- database modeling
- [표준 SQL] Standard SQL
- G-SQL
- 10-Min
- ORACLE
- MS SQLserver
- MySQL
- SQLite
- postgreSQL
- 데이터아키텍처전문가 - 국가공인자격
- 데이터 분석 전문가 [ADP]
- [국가공인] SQL 개발자/전문가
- NoSQL
- hadoop
- hadoop eco system
- big data (빅데이터)
- stat(통계) R 언어
- XML DB & XQuery
- spark
- DataBase Tool
- 데이터분석 & 데이터사이언스
- Engineer Quality Management
- [기계학습] machine learning
- 데이터 수집 및 전처리
- 국가기술자격 빅데이터분석기사
- 암호화폐 (비트코인, cryptocurrency, bitcoin)
ORACLE ORCLE 문자열을 숫자로, 숫자를 문자로, TO_CHAR(), TO_NUMBER()
2013.12.27 19:44
Oracle/PLSQL: TO_CHAR Function
The Oracle/PLSQL TO_CHAR function converts a number or date to a string.
Oracle TO_CHAR Syntax
The syntax for the Oracle/PLSQL TO_CHAR function is:
TO_CHAR( value, [ format_mask ], [ nls_language ] )
Parameters or Arguments
value can either be a number or date that will be converted to a string.
format_mask is optional. This is the format that will be used to convert value to a string.
nls_language is optional. This is the nls language used to convert value to a string.
Applies To
The TO_CHAR function can be used in the following versions of Oracle/PLSQL:
- Oracle 12c, Oracle 11g, Oracle 10g, Oracle 9i, Oracle 8i
TO_CHAR Function Examples - with Numbers
Let's look at some Oracle TO_CHAR function examples and explore how you would use the TO_CHAR function in Oracle/PLSQL.
For example:
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, ',999.00') | would return '16985,210.73' |
| TO_CHAR(21, '000099') | would return '000021' |
TO_CHAR Funcation Examples - with Dates
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.
| Parameter | Explanation |
|---|---|
| YEAR | Year, spelled out |
| YYYY | 4-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. |
| IYYY | 4-digit year based on the ISO standard |
| Q | Quarter of year (1, 2, 3, 4; JAN-MAR = 1). |
| MM | Month (01-12; JAN = 01). |
| MON | Abbreviated name of month. |
| MONTH | Name of month, padded with blanks to length of 9 characters. |
| RM | Roman numeral month (I-XII; JAN = I). |
| WW | Week of year (1-53) where week 1 starts on the first day of the year and continues to the seventh day of the year. |
| W | Week of month (1-5) where week 1 starts on the first day of the month and ends on the seventh. |
| IW | Week of year (1-52 or 1-53) based on the ISO standard. |
| D | Day of week (1-7). |
| DAY | Name of day. |
| DD | Day of month (1-31). |
| DDD | Day of year (1-366). |
| DY | Abbreviated name of day. |
| J | Julian day; the number of days since January 1, 4712 BC. |
| HH | Hour of day (1-12). |
| HH12 | Hour of day (1-12). |
| HH24 | Hour of day (0-23). |
| MI | Minute (0-59). |
| SS | Second (0-59). |
| SSSSS | Seconds past midnight (0-86399). |
| FF | Fractional 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 TO_CHAR function 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".
Frequently Asked Questions (TO_CHAR Function)
Question: Why doesn't this sort the days of the week in order?
select ename, hiredate, TO_CHAR((hiredate),'fmDay') "Day" from emp order by "Day";
Answer: In the above SQL, the fmDay format mask used in the TO_CHAR function will return the name of the Day and not the numeric value of the day.
To sort the days of the week in order, you need to return the numeric value of the day by using the fmD format mask as follows:
select ename, hiredate, TO_CHAR((hiredate),'fmD') "Day" from emp order by "Day";
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 공지 | 오라클 기본 샘플 데이터베이스 | 졸리운_곰 | 2014.01.02 | 86308 |
| 공지 | [SQL컨셉] 서적 "SQL컨셉"의 샘플 데이타 베이스 SAMPLE DATABASE of ORACLE | 가을의 곰을... | 2013.02.10 | 78763 |
| 공지 | [G_SQL] Sample Database | 가을의 곰을... | 2012.05.20 | 95509 |
| 2 | MYISAM 테이블을 INNODB 테이블로 변경 | 졸리운_곰 | 2016.03.13 | 1432 |
| 1 | mysql cpu 점유율이 높을 때 | 졸리운_곰 | 2015.06.05 | 1889 |

