1. 현재시간
- MySQL
NOW() : 쿼리가 실행되는 시간의 값
SYSDATE() : 해당 함수가 호출되는 시간의 값
- ORACLE
SYSDATE : 시스템의 현재 날짜/시간
CURRENT_DATE : 세션별 시간대(TIME_ZONE)를 기준으로 한 날짜/현재 시간
2. 시간 형식
- MySQL
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s')
년 : %Y = 2020, %y = 20
월 : %m = 04, %M = April
일 : %d = 10, %D = 10th
시 : %H = 13, %h = 01 (am/pm 구분 없이 출력)
분 : %i = 40
초 : %s = 20
- ORACLE
SELECT TO_CHAR(SYSDATE, 'yyyy-mm-dd hh24:mi:ss')
년 : YYYY = 2020, YY = 20
월, 일, 시, 분, 초는 대소문자 동일
3. 날짜 +/-
- MySQL
년 | DATE_ADD(NOW(), INTERVAL 1 YEAR), -- 1년 뒤 DATE_SUB(NOW(), INTERVAL 1 YEAR), -- 1년 전 |
월 | DATE_ADD(NOW(), INTERVAL 1 MONTH), -- 1달 뒤 DATE_SUB(NOW(), INTERVAL 1 MONTH), -- 1달 전 |
일 | DATE_ADD(NOW(), INTERVAL 1 DAY), -- 1일 뒤 DATE_SUB(NOW(), INTERVAL 1 DAY), -- 1일 전 |
시 | DATE_ADD(NOW(), INTERVAL 1 HOUR), -- 1시간 뒤 DATE_SUB(NOW(), INTERVAL 1 HOUR), -- 1시간 전 |
분 | DATE_ADD(NOW(), INTERVAL 1 MINUTE), -- 1분 뒤 DATE_SUB(NOW(), INTERVAL 1 MINUTE), -- 1분 전 |
초 | DATE_ADD(NOW(), INTERVAL 1 SECOND), -- 1초 뒤 DATE_SUB(NOW(), INTERVAL 1 SECOND) -- 1초 전 |
- ORACLE
년/월 | TO_CHAR(ADD_MONTHS(SYSDATE, +12), 'yyyy-mm-dd hh24:mi:ss'), -- 1년 뒤 TO_CHAR(ADD_MONTHS(SYSDATE, -12), 'yyyy-mm-dd hh24:mi:ss'), -- 1년 전 |
일 | TO_CHAR(SYSDATE + 1, 'yyyy-mm-dd hh24:mi:ss'), -- 1일 뒤 TO_CHAR(SYSDATE - 1, 'yyyy-mm-dd hh24:mi:ss'), -- 1일 전 |
시 | TO_CHAR(SYSDATE + 1/24, 'yyyy-mm-dd hh24:mi:ss'), -- 1시간 뒤 TO_CHAR(SYSDATE - 1/24, 'yyyy-mm-dd hh24:mi:ss'), -- 1시간 전 |
분 | TO_CHAR(SYSDATE + 1/24/60, 'yyyy-mm-dd hh24:mi:ss'), -- 1분 뒤 TO_CHAR(SYSDATE - 1/24/60, 'yyyy-mm-dd hh24:mi:ss'), -- 1분 전 |
초 | TO_CHAR(SYSDATE + 1/24/60/60, 'yyyy-mm-dd hh24:mi:ss') -- 1초 뒤 TO_CHAR(SYSDATE - 1/24/60/60, 'yyyy-mm-dd hh24:mi:ss') -- 1초 전 |
4. 특정시간에서 +/-
- MySQL
DATE_ADD(DATE_FORMAT('2017-10-08 18:00:00', '%Y-%m-%d %H:%i:%s'), INTERVAL 1 MINUTE),
DATE_SUB(DATE_FORMAT('2017-10-08 18:00:00', '%Y-%m-%d %H:%i:%s'), INTERVAL 1 MINUTE)
- Oracle
TO_DATE('2017-10-08 18:00:00', 'yyyy-mm-dd hh24:mi:ss') + 1/24/60,
TO_DATE('2017-10-08 18:00:00', 'yyyy-mm-dd hh24:mi:ss') - 1/24/60
5. 특정시간의 시간차
- MySQL
TIMESTAMPDIFF(SECOND, DATE_FORMAT('2017-10-08 18:00:00', '%Y-%m-%d %H:%i:%s'), NOW()),
TIMESTAMPDIFF(MINUTE, DATE_FORMAT('2017-10-08 18:00:00', '%Y-%m-%d %H:%i:%s'), NOW()),
TIMESTAMPDIFF(HOUR, DATE_FORMAT('2017-10-08 18:00:00', '%Y-%m-%d %H:%i:%s'), NOW()),
TIMESTAMPDIFF(DAY, DATE_FORMAT('2017-10-08 18:00:00', '%Y-%m-%d %H:%i:%s'), NOW()),
TIMESTAMPDIFF(MONTH, DATE_FORMAT('2017-10-08 18:00:00', '%Y-%m-%d %H:%i:%s'), NOW()),
TIMESTAMPDIFF(YEAR, DATE_FORMAT('2017-10-08 18:00:00', '%Y-%m-%d %H:%i:%s'), NOW())
- Oracle
CURRENT_TIMESTAMP - TIMESTAMP '2017-10-08 18:00:00',
SYSTIMESTAMP - TIMESTAMP '2017-10-08 18:00:00'
'- DB' 카테고리의 다른 글
[Oracle, MySQL, MSSQL] PROCEDURE (0) | 2020.07.14 |
---|---|
[MySQL] int(11), ZEROFILL (0) | 2020.07.14 |
[MyBatis] #, $ 차이 (0) | 2020.06.23 |
[MySQL] Incorrect string value (0) | 2020.06.15 |
[Oracle] ORA-12518: TNS:listener could not hand off client connection (0) | 2020.04.07 |