본문 바로가기

db23

oracle SQL - TIMESTAMP, INTERVAL 1. TIMESTAMP 관련 타입 - TIMESTAMP (세션에 상관없이 시, 분, 초까지 저장) - TIMESTAMP WITH TIME ZONE (클라이언트 시간대 기록) - TIMESTAMP WITH LOCAL TIME ZONE (시차 계산) SYSTIMESTAMP 함수는 DB 서버가 있는 지역의 현재 시간을 반환 CURRENT_TIMESTAMP 함수는 클라이언트 지역의 현재 시간 반환 ALTER SESSION SET TIME_ZONE = '+-00:00'; 위 문장을 실행하여 세션의 시간대를 바꾸면 SYSTIMESTAMP는 바뀌지 않지만 CURRENT_TIMESTAMP 함수는 영국 그리니치 천문대 기준 설정한 값보다 빠르거나(+) 느린(-) 시간대로 나옵니다. 참고 : 2번째 열부터, 주문날짜, 배.. 2023. 5. 30.
oracle SQL - 데이터 유형의 변환 (TO_DATE()) TO_DATE()함수는 where 절에서 자주 사용된다. 다음과 같은 경우를 보자 비교 연산자 왼쪽 birthdate 칼럼의 데이터 유형은 DATE이다. 비교 연산자 우측에 있는 문자는 보기엔 날짜이지만, 데이터 타입은 문자이다. 비교 연산자 우측 문자를 날짜 타입으로 바꾸기 위해 TO_DATE()함수를 사용한다. TO_DATE(01-01-92, 'dd-mm-yy')로 입력하면 아무 결과가 나오지 않는다. 오라클에서 yy는 무조건 현재 세기를 기준으로 검색하기 때문에 2092년생을 찾으려니 나오지 않는 것이다. 해결방법으론 yy 대신 rr을 사용하면 된다. rr은 년도를 두 자리로 표현하고 싶을 때 2000년 기준 50 ~ 99는 이전 세기로, 00 ~ 49는 현재 세기로 검색한다. 2023. 3. 28.
oracle SQL - 데이터 유형의 변환 (TO_NUMBER()) TO_NUMBER() 함수는 다음과 같은 쿼리 실행 시 사용한다. SELECT dept_id, emp_name from y_emp where salary * 12 > '10,000'; 원래 콤마가 없다면 암시적 데이터 유형 변환으로 알아서 형변환 되지만, 위 같은 경우는 아래와 같이 TO_NUMBER() 함수를 사용하여 문자를 숫자로 바꾸어 주어야 한다. select dept_id, emp_name from y_emp where salary * 12 > TO_NUMBER('10,000', '99,999'); 2023. 3. 28.
oracle SQL - 날짜 함수 오라클 SQL은 데이터 유형이 date(날짜)인 데이터를 이용한 함수들이 존재한다. 1. MONTHS_BETWEEN(date1, date2) 두 날짜 사이의 달 수를 반환한다. MONTHS_BETWEEN()함수는 날짜 데이터 두 개를 받으면 숫자(숫자 타입)를 반환한다. 입사 날짜부터 현재 날짜까지 몇개월이 걸렸는지 나타낸다. 2. ADD_MONTHS(date, n) 2번째 인수 n달 만큼 더한 날짜를 반환한다. 3. NEXT_DAY(date, '요일') date 날짜로부터 오는 '요일'의 날짜를 반환한다. '요일' 자리에는 숫자 : 1은 일요일, 2는 월요일, ....7은 토요일이다. '금요일' '금' (약어) 가 올 수 있다. 2023년 3월 28일 기준 오는 일요일은 23년 4월 2일 4. LAST.. 2023. 3. 28.
백준 C++ - 스택, 괄호 (9012) https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 스택을 이용한 기본적인 알고리즘 문제이다. 접근 방법 1. '(' 열린 괄호가 들어오면 스택에 쌓는다. 2. ')' 닫힌 괄호가 들어오면 스택에 열린 괄호 하나를 빼낸다. 3. 마지막에 스택에 괄호가 남아 있거나 혹은 비어 있지만 빼내야 하는 경우 "NO" 출력 #include #pragma warning(disable:4996) char a[60], b[2][10].. 2023. 2. 9.
DB 엔진 - 도메인 char, varchar2 테이블을 만들면서 칼럼의 도메인을 char 또는 varchar2로 설정한 적이 있을 것이다. 개인이 sql을 공부한하던가, 저장공간 대비 DB 사용공간이 적다면 두 도메인을 사용하는 데 신경 쓰지 않아도 되지만, 물리적인 디스크 내부의 공간을 효율적으로 사용해야 한다면 두 도메인 선택에 신중해야 한다. CHAR create table test( test1 char(10) ) / insert into test values('t1') char도메인을 사용하는 칼럼은 insert시 사용자가 정한 크기만큼 고정적인 공간을 할당한다. 위 코드 test테이블의 test1 칼럼의 't1'은 2byte 밖에 공간을 사용하지 않지만 물리적인 디스크 공간에 10byte만큼 고정적으로 사용할 수 있기 때문에 할당된 크기 내.. 2022. 12. 28.