본문 바로가기

DB

0920 DB - 형식 문자(2)

728x90
반응형

 

TO_NUMBER(문자열 char → 숫자 number)

숫자 문자로 된 문자열을 숫자 데이터로 변환하는 함수

TO_CHAR (숫자→문자열)의 형식 문자를 사용한다.

 
SELECT TO_NUMBER('12345', '99999') * 2
FROM dual;
TO_NUMBER('12345','99999')*2|

----------------------------+

                       24690|

 

 
SELECT TO_NUMBER('$24,000.00', '$99,999.99')
FROM dual;
TO_NUMBER('$24,000.00','$99,999.99')|

------------------------------------+

                               24000|

 

 

TO_DATE(문자열 → 날짜)

TO_CHAR(날짜 → 문자열) 함수의 형식문자를 동일하게 사용한다.

 

 
SELECT TO_DATE('20-2022-09', 'DD-YYYY-MM')
FROM dual;
TO_DATE('20-2022-09','DD-YYYY-MM')|

----------------------------------+

           2022-09-20 00:00:00.000|

 

 

 

날짜 지정 포맷 형식 'YYYY-MM-DD HH24:MI:SS'

날짜를 DATETIME 이나 TIMESTAMP로 받을때 날짜 포맷을 지정하게 되는데


예를들면,

TO_CHAR(tranb_dt, 'YYYY-MM-DD HH24:MI:SS') 라고 쓰면 2020-02-13 18:06:03 으로 뜬다

 

하지만,

TO_CHAR(tranb_dt, 'YYYY-MM-DD HH:MI:SS')

이렇게 쓰게되면 2020-02-13 06:06:03 으로 뜨기때문에 24를 붙이는 것을 유의해야한다.

 

 
SELECT TO_DATE('22-09-17-20-45-50', 'YY-MM-HH24-DD-SS-MI')
FROM dual;
TO_DATE('22-09-17-20-45-50','YY-MM-HH24-DD-SS-MI')|

--------------------------------------------------+

                           2022-09-20 17:50:45.000|

 

 

2004/08/09 이전 입사자 

SELECT employee_id, last_name, salary, hire_date
FROM employees
WHERE hire_date < TO_DATE('2004/08/09', 'YYYY/MM/DD');
EMPLOYEE_ID|LAST_NAME|SALARY|HIRE_DATE              |
-----------+---------+------+-----------------------+
        100|King     | 24000|2003-06-17 00:00:00.000|
        102|De Haan  | 17000|2001-01-13 00:00:00.000|
        108|Greenberg| 12008|2002-08-17 00:00:00.000|
        109|Faviet   |  9000|2002-08-16 00:00:00.000|
        114|Raphaely | 11000|2002-12-07 00:00:00.000|
        115|Khoo     |  3100|2003-05-18 00:00:00.000|
        120|Weiss    |  8000|2004-07-18 00:00:00.000|
        122|Kaufling |  7900|2003-05-01 00:00:00.000|
        133|Mallin   |  3300|2004-06-14 00:00:00.000|
        137|Ladwig   |  3600|2003-07-14 00:00:00.000|
        141|Rajs     |  3500|2003-10-17 00:00:00.000|
        156|King     | 10000|2004-01-30 00:00:00.000|
        157|Sully    |  9500|2004-03-04 00:00:00.000|
...

 

 

 

 

Q. 사용자에게 사원의 성의 첫글자를 입력받아 해당하는 사원을 출력하는 구문을 작성하시오.

 

-- 치환변수 사용!!

 

치환변수 참고 쿼리구문)

SELECT employee_id, &col_num2

FROM employees

WHERE employee_id = &emp_id;

 

-- 사용자에게 프롬프트 창으로 치환변수의 값을 되물어 입력받은 값으로 치환된 구문을 실행

SELECT last_name

FROM employees

WHERE last_name = '&lname';

 

%기호는 치환변수의 변수명으로 사용안됨. ex) &hihi% 는 hihi까지가 치환변수명으로 인정된다.

SELECT employee_id, last_name
FROM employees
WHERE last_name LIKE UPPER('&initc%');

 

 

Q2. 사원의 성과 사원의 급여를 '*'로 표시한 문자열을 합쳐서 컬럼명을 employees_and_their_salaries로 출력하는 쿼리구문을 작성하시오. (*문자 하나는 1000달러를 가리키도록 작성)

LPAD|RPAD('???', TRUNC(급여/1000), '???)
SELECT RPAD(last_name, (SELECT max(LENGTH(last_name)) FROM employees),' ') ||
RPAD('*',TRUNC(salary/1000),'*') 
AS employees_and_their_salaries, salary
FROM employees;

 

728x90
반응형

'DB' 카테고리의 다른 글

0927 DB - GROUP BY 절 ~ HAVING절  (0) 2022.09.27
0921 DB - 일반함수  (1) 2022.09.21
0920 DB - 형식문자  (1) 2022.09.20
0913 DB - 형 변환 함수  (2) 2022.09.13
0913 JSP - 자원해제 메서드-closeDB(), 페이징 처리 (1)  (1) 2022.09.13