MySQL의 날짜 함수를 정리해 봤습니다.
MS-SQL을 사용할 때와 비교하면..
장점 : 직접 구현해야했던 동작까지 바로 제공해주는 다양한 함수
단점 : 같은 동작을 하는 함수가 중복하여 존재한다. 이름만 다르거나, 인자의 순서 또는 형식이 다르거나...
프로젝트 초기에 coding convention을 정하고 작성하는 것은 당연한 일이겠지만, MySQL을 사용한다면 함수에 대해서도
어떤 동작에 어떤 함수를 쓰기로 미리 약속
하는 것이 좋을 것 같습니다.
예를들면 "날짜를 더하고 뺄때 TIMESTAMPADD()만 사용하기로 합니다" 와 같은 것!!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | -- 현재 date 조회 SELECT CURDATE(); SELECT CURTIME(6); SELECT NOW(6); SELECT UNIX_TIMESTAMP('2015-01-01 01:23:45'); -- 날짜 연산 -- interval : MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR SELECT TIMESTAMPADD(DAY, 3, '2015-01-01 00:00:00'); SELECT TIMESTAMPDIFF(DAY, '2015-01-01', NOW()); SELECT TIMEDIFF(NOW(), '2015-06-01 13:00:00'); SELECT LAST_DAY(NOW()); -- 변환 SELECT FROM_UNIXTIME(1420038000); SELECT FROM_UNIXTIME(2100000001, '%Y/%m/%d %T.%f'); SELECT DAYOFWEEK(NOW()); -- 요일 (1 ~ 7) / 1=일요일 SELECT DAYNAME(NOW()); -- 요일 (문자) SELECT MONTHNAME(); -- 월 (문자) SELECT SEC_TO_TIME(3600); SELECT TIME_TO_SEC('1:00:00'); -- 추출 SELECT DATE(NOW()); -- YYYY-MM-DD SELECT TIME(NOW(6)); -- HH:MM:SS.xxxxxx SELECT YEAR(NOW()); SELECT QUARTER(NOW()); SELECT WEEK(NOW(), 3); -- = WEEKOFYEAR(NOW()) SELECT MONTH(NOW()); SELECT DAY(NOW()); -- synonym : DAYOFMONTH() SELECT HOUR(NOW()); SELECT MINUTE(NOW()); SELECT SECOND(NOW()); SELECT MICROSECOND(NOW(6)); -- 포맷 SELECT DATE_FORMAT(NOW(), '%m'); -- 월 (00 ~ 12) SELECT DATE_FORMAT(NOW(), '%d'); -- 일 (00 ~ 31) SELECT DATE_FORMAT(NOW(), '%H'); -- 시간 (00 ~ 23) SELECT DATE_FORMAT(NOW(), '%h'); -- 시간 (1 ~ 12) SELECT DATE_FORMAT(NOW(), '%p'); -- AM/PM SELECT DATE_FORMAT(NOW(), '%i'); -- 분 (00 ~ 59) SELECT DATE_FORMAT(NOW(), '%S'); -- 초 (00 ~ 59) SELECT DATE_FORMAT(NOW(6), '%f'); -- 마이크로초 SELECT DATE_FORMAT(NOW(), '%T'); -- 시:분:초 SELECT DATE_FORMAT(NOW(), '%W'); -- 요일 (문자열) SELECT DATE_FORMAT(NOW(), '%Y'); -- 연도 (YYYY) SELECT DATE_FORMAT(NOW(6), '%Y/%m/%d %T.%f'); SELECT STR_TO_DATE('29.06.2015', GET_FORMAT(DATE,'EUR')); -- DATE_FORMAT()의 역함수 | cs |
'MySQL > MySQL Tip & Tech' 카테고리의 다른 글
[MySQL] 사용자 로그 테이블 - (1) Primary Key가 필요한가? (16) | 2018.07.13 |
---|---|
[MySQL] 5.7에서 JSON 을 JSON_TABLE() 함수 없이 테이블로 변환하기 (0) | 2018.07.03 |
[MySQL] 명명 규칙 (Naming Convention) (8) | 2018.06.15 |
[MySQL] Materialized Path를 사용한 계층형 모델 (3) | 2018.04.16 |
[MySQL] 테이블 레이아웃 복사 (0) | 2015.07.07 |