programming/SQL
-
[MySQL/MariaDB] 소수점 특정 자릿수까지 표시하기programming/SQL 2021. 10. 28. 17:41
Mysql / MariaDB에서 소수점을 특정 자릿수까지만 표기할 경우, format을 사용해서 처리할 수 있다. SELECT format('202.123456789',3) FROM DUAL; 위와 같이 format을 사용할 경우 아래처럼 소수점 3자리까지만 표기된다. - 위 작성된 글에는 잘못된 부분이 있을 수 있습니다. 알려주시면 수정하겠습니다. ※ info DB : MySQL Client(MariaDB 10.4(x64)) OS : Windows 10 Pro
-
[Oracle] 오라클 날짜 포맷 사용(TO_CHAR)programming/SQL 2021. 7. 20. 20:53
오라클에서 날짜를 지정한 포맷으로 출력하려면 TO_CHAR()을 사용하면 된다. SELECT sysdate ,TO_CHAR(SYSDATE, 'yyyyMMdd') dt1 ,TO_CHAR(SYSDATE, 'yyyy-MM-dd') dt2 FROM dual; 위 쿼리를 실행하면 아래와 같이 나온다. 이때 월만 따로 구하고 싶다면 아래 쿼리를 실행하면 된다. SELECT sysdate ,TO_CHAR(SYSDATE, 'MM') MONTH FROM dual; 여기서 월을 구할 때, 01,02~11,12월 과 같이 두 자리 형식을 유지해서 많이 사용하지만, 한자리 1~9월까지에서 앞의 0을 빼고 싶을 때도 있다. 이럴 때도 TO_CHAR()을 사용하면 된다. SELECT sysdate ,TO_CHAR(TO_CHAR(..
-
[Oracle] Date 24시간으로 비교하기programming/SQL 2020. 12. 23. 23:00
오라클에서 시간을 비교할 때, 단순히 부등호 만으로 비교할 수 있다. 예를 들어 아래와 같은 테이블이 있을 때, create TABLE DATE_TEST( SEQ NUMBER, TEXT VARCHAR2(100), REG_DT DATE, MOD_DT DATE ); INSERT INTO DATE_TEST VALUES(1, 'TEST1', TO_DATE('2020-12-23 11:00:00', 'yyyy-MM-dd HH24:MI:SS'), TO_DATE('2020-12-23 11:00:00', 'yyyy-MM-dd HH24:MI:SS')); INSERT INTO DATE_TEST VALUES(2, 'TEST2', TO_DATE('2020-12-23 12:00:00', 'yyyy-MM-dd HH24:MI:SS'..
-
[SQL] Oracle Merge Into 사용법programming/SQL 2020. 6. 4. 22:32
오라클에서 테이블에 데이터를 Insert 할 때, 또는 두 개의 테이블을 합칠 때, 이미 테이블에 데이터가 있으면 Update를, 테이블에 데이터가 없으면 Insert를, 하기 위해선 MERGE INTO를 사용할 수 있다. 예를 들어서 아래와 같은 테이블과 데이터들이 있을 때, 아래와 같이 MERGE INTO를 사용할 수 있다. 두 개의 테이블이 없고, 어떤 값들을 직접 비교할 때는 DUAL을 사용해서 데이터를 Insert 할 수 있다.
-
[ORACLE] 오라클 시퀀스 에러 CURRVAL, NEXTVALprogramming/SQL 2020. 4. 22. 21:24
오라클에 시퀀스를 사용할 때 NEXTVAL을 사용한다. CURRVAL은 거의 사용할 일이 없었는데, 어쩌다 보니 사용하게 되었다. 근데 이때 NEXTVAL이 에러가 나서 CURRVAL을 사용할 수 없었다. 에러는 "이 세션에서는 정의되어 있지 않다"라고 되어 있었다. 처음엔 시퀀스에 권한이 없어진 줄 알았는데, 같은 세션에 NEXTVAL을 실행시키지 못해서, CURRVAL을 실행시키지 못했다. NEXTVAL이 정상 작동되니까 CURRVAL도 문제없이 작동했다. 요약) NEXTVAL이 되어야 CURRVAL도 되는 것 같다. 정확한 근거는 좀 더 자세히 알아봐야겠다. 애초에 CURRVAL을 쓰는 이유가 잘못되었던 건지도 모르지만, 일단 해결했다.