[DB] MySQL 기본 날짜함수

2020. 5. 23. 22:26DataBase/MySQL

반응형

날짜 함수

1. NOW()

※ 현재 날짜시간 리턴

(동일한 쿼리에서 함수가 여러번 호출되더라도 동일한 값을 반환)

 

설명) 형식 : 2020-05-23 21:08:56

SELECT NOW(), SLEEP(2), NOW() FROM DUAL;

RESULT :
2020-05-23 21:19:37
0
2020-05-23 21:19:37

2. SYSDATE()

※ 현재 날짜시간 리턴

(함수가 호출될때 시점으로 값을 반환)

SELECT SYSDATE(), SLEEP(2), SYSDATE() FROM DUAL;

RESULT :
2020-05-23 21:21:08
0
2020-05-23 21:21:10

3. CURDATE()

※ 정의

1) CURDATE() 함수만 호출시 YYYY-MM-DD로 현재 날짜 반환

2) CURDATE() 가 숫자 혹은 문자열과 함께 사용되면 숫자로 계산된 결과를 반환

1) SELECT CURDATE() FROM DUAL;

RESULT
: 2020-05-23

2) SELECT CURDATE() + 30 FROM DUAL;

RESULT
: 2020523 + 30 = 2020553

4. CURTIME()

1) CURTIME() 함수만 호출시 HH:MM:SS 로 현재 시간 반환

2) CURTIME() 가 숫자 혹은 문자열과 함께 사용되면 숫자로 계산된 결과를 반환

1) SELECT CURTIME() FROM DUAL;

RESULT
: 09:40:47

2) SELECT CURTIME() + 500 FROM DUAL;

RESULT (현재시간 : 09:40:56)
: 94556

5. YEAR()

※ 해당 날짜의 '년도'를 리턴

SELECT YEAR('2020-05-25 09:50:41.0') FROM DUAL;

RESULT
: 2020

6. MONTH()

※ 해당 날짜의 '월'을 리턴

SELECT MONTH('2020-05-25 09:50:41.0') FROM DUAL;

RESULT
: 5

7. DAY()

※ 해당 날짜의 '일'을 리턴

SELECT DAY('2020-05-25 09:50:41.0') FROM DUAL;

RESULT
: 25

8. HOUR() or MINUTE() or SECOND()

1) 해당 날짜의 '시간'을 리턴

2) 해당 날짜의 '분'을 리턴

3) 해당 날짜의 '초'를 리턴

1) SELECT HOUR('2020-05-25 09:50:41.0') FROM DUAL;

RESULT
: 9

2) SELECT MINUTE('2020-05-25 09:50:41.0') FROM DUAL;

RESULT
: 50

3) SELECT SECOND('2020-05-25 09:50:41.0') FROM DUAL;

RESULT
: 41

9. DAYOFYEAR()

※ 해당 날짜의 해에서 몇 번째 날인지를 리턴. (리턴값 1~365)

SELECT DAYOFYEAR('2020-05-25 09:50:41.0') FROM DUAL;

RESULT
: 146

10. DAYOFMONTH()

※ 해당 날짜의 달에서 몇 번째 날인지를 리턴. (리턴값 1~31)

SELECT DAYOFMONTH('2020-05-25 09:50:41.0') FROM DUAL;

RESULT
: 25

11. DAYOFWEEK()

※ 해당 날짜가 한 주의 무슨요일인지를 숫자로 리턴. (리턴값 : 일요일 = 1, 월요일 = 2, ... 토요일 = 7)

SELECT DAYOFWEEK('2020-05-25 09:50:41.0') FROM DUAL;

RESULT (해당 날짜 요일은 월요일)
:
2

12. WEEKDAY()

※ 해당 날짜가 한 주의 무슨요일인지를 숫자로 리턴. (리턴값 : 월요일 = 0, 화요일 = 1, ... ,일요일 = 6)

SELECT WEEKDAY('2020-05-25 09:50:41.0') FROM DUAL;

RESULT (해당 날짜 요일은 월요일)
: 0

13. DAYNAME()

※ 해당 날짜가 한 주의 무슨요일인지를 영어로 리턴. 

SELECT DAYNAME('2020-05-25 09:50:41.0') FROM DUAL;

RESULT (해당 날짜 요일은 월요일)
: Monday

14. MONTHNAME()

※ 해당 날짜가 몇월인지 영어로 리턴

SELECT MONTHNAME('2020-05-25 09:50:41.0') FROM DUAL;

RESULT
: May

15. QUARTER()

※ 해당 날짜가 몇분기인지 숫자로 리턴(리턴값 : 1~4)

SELECT QUARTER('2020-05-25 09:50:41.0') FROM DUAL;

RESULT
: 2

16. WEEK(DATE, FIRST)

1) 한주의 시작을 일요일(FIRST의 디폴트는 0)로 계산하여 해당 날짜가 몇번째 주인지 반환

2) 한주의 시작을 일요일(FIRST = 0)로 계산하여 해당 날짜가 몇번째 주인지 반환 

3) 한주의 시작을 월요일(FIRST = 1)로 계산하여 해당 날짜가 몇번째 주인지 반환 

1) SELECT WEEK('2020-05-25 09:50:41.0') FROM DUAL;

RESULT
: 21

2) SELECT WEEK('2020-05-25 09:50:41.0', 0) FROM DUAL;

RESULT
: 21

3) SELECT WEEK('2020-05-25 09:50:41.0', 1) FROM DUAL;

RESULT
: 22

17. LAST_DAY()

※해당 날짜의 월의 마지막 날짜를 반환 (YYYY-MM-DD)

SELECT LAST_DAY('2020-05-25 09:50:41.0') FROM DUAL;

RESULT
: 2020-05-31
반응형