1. Mysql 함수(1) -바닥부터 배우는 Mysql -
NOW()
CURDATE()
CURTIME()
UNIX_TIMESTAMP()
DATE()
EXTRACT()
DATE_ADD()
DATE_SUB()
DATEDIFF()
DATE_FORMAT()
Date 함수:
ColumnName datetime DEFAULT NOW();
ColumnName timestamp DEFAULT CURRENT_TIMESTAMP();
DEFAULT 값은 버전에 따라 적용 방식이 약간씩 다르다. 위의 방식이 무난함.
가장 많이 쓰이는 것들
NOW() : 현재 날짜와 시간을 반환한다.
(동의어: CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP, LOCALTIME(), LOCALTIME, LOCALTIMESTAMP(), LOCALTIMESTAMP)
CURDATE() : 'YYYY-MM-DD', 'YYYYMMDD' 형식으로 현재 날짜를 반환한다.
(동의어: CURRENT_DATE(), CURRENT_DATE)
CURTIME() : 'HH:MM:SS', 'HHMMSS' 형식으로 현재 시간을 반환한다.
(동의어: CURRENT_TIME(), CURRENT_TIME)
예 1-1
SELECT NOW(), CURDATE(), CURTIME();
결과
NOW() | CURDATE() | CURTIME() |
2017-01-25 18:45:45 | 2017-01-25 | 18:45:45 |
예 1-2
SELECT NOW()+0, CURDATE()+0, CURTIME()+0;
결과
NOW()+0 | CURDATE()+0 | CURTIME()+0 |
20170125185148.000000 | 20170125 | 185148.000000 |
UNIX_TIMESTAMP(expr): 입력된 date나 date/time 값을 UNIXTIME으로 변환한다.
입력된 값이 없으면 현재 시간을 UNIXTIME으로 변환한다. 필드의 데이터 타입으로는 int가 적당하다.
DATE(expr) : 입력된 date나 date/time 값에서 date 부분을 추출한다.
expr : date/time 형식의 값.
예 1-3
SELECT date(NOW());
결과
date(now()) |
2017-01-25 |
SELECT date('2017-01-25 18:45:45');
결과
date('2017-01-25 18:45:45') |
2017-01-25 |
EXTRACT(unit FROM date) : date/time에서 year, month, day, hour, minute 등의 어느 한 부분을 추출한다.
unit 값으로 들어갈 수 있는 단위들 |
MICROSECOND |
SECOND |
MINUTE |
HOUR |
DAY |
WEEK |
MONTH |
QUARTER |
YEAR |
SECOND_MICROSECOND |
MINUTE_MICROSECOND |
MINUTE_SECOND |
HOUR_MICROSECOND |
HOUR_SECOND |
HOUR_MINUTE |
DAY_MICROSECOND |
DAY_SECOND |
DAY_MINUTE |
DAY_HOUR |
YEAR_MONTH |
예 1-4
SELECT EXTRACT(YEAR FROM NOW()) AS Year,
EXTRACT(MONTH FROM NOW()) AS Month,
EXTRACT(DAY FROM NOW()) AS Day;
결과
Year | Month | Day |
2017 | 1 | 25 |
DATE_ADD(date, INTERVAL expr type) : 날짜 계산을 수행한다.
DATE_SUB( 날짜 계산을 수행한다.
date: 시작 날짜(DATETIME 또는 DATE 값).
expr: 시작 날짜로부터 더하거나 뺀 간격 값을 지정하는 표현(expr는 문자열이다). ('-')로 시작될 수도 있다.
type : 어떻게 해석할지를 지정하는 키워드이다.
INTERVAL 키워드와 type 지정자는 대소문자를 구분하지 않는다.
type 값으로 들어갈 수 있는 단위들 |
MICROSECOND |
SECOND |
MINUTE |
HOUR |
DAY |
WEEK |
MONTH |
QUARTER |
YEAR |
SECOND_MICROSECOND |
MINUTE_MICROSECOND |
MINUTE_SECOND |
HOUR_MICROSECOND |
HOUR_SECOND |
HOUR_MINUTE |
DAY_MICROSECOND |
DAY_SECOND |
DAY_MINUTE |
DAY_HOUR |
YEAR_MONTH |
예 1-5
SELECT DATE_ADD(CURDATE(), INTERVAL 30 DAY) AS AfterDate,
CURDATE(),
DATE_ADD(CURDATE(), INTERVAL 30 DAY) AS BeforeDate;
결과
AfterDate | CURDATE() | BeforeDate |
2017-02-24 | 2017-01-25 | 2017-02-24 |
DATEDIFF(Date1, Date2) : Date1-Date2의 값을 반환한다.
Date1, Date2는 date 또는 date/time 형식이고 반환 값의 date 부분만 계산된다.
예 1-6
SELECT DATEDIFF('2016-12-25',NOW()) AS 2016_Xmas,
DATEDIFF('2017-12-25',NOW()) AS 2017_Xmas;
결과
2016_Xmas | 2017_Xmas |
-31 | 334 |
DATE_FORMAT(date,format):
format 문자열에 따라 date 값을 출력한다.
format 문자열에는 다음 지정자들이 사용된다.
지정자 | 설명 |
%a | 요일. 영문 약자. (Sun-Sat) |
%b | 월. 영문 약자. (Jan-Dec) |
%c | 월. 숫자. (0-12) |
%D | 날짜. 영문 접미사 사용. (0th, 1st, 2nd, 3rd,) |
%d | 날짜. 두 자리 숫자. (00-31) |
%e | 날짜, 한 자리 숫자. (0-31) |
%f | 초. Microseconds (000000-999999) |
%H | 시간. 24Hour (00-23) |
%h | 시간. 12Hour (01-12) |
%I | 시간. 12Hour (01-12) |
%i | 분. 두 자리 숫자. (00-59) |
%j | 날짜. (001-366) |
%k | 시간. 24Hour (0-23) |
%l | 시간. 12Hour (1-12) |
%M | 월. 영문 이름. (January-December) |
%m | 월. 두 자리 숫자 (00-12) |
%p | AM, PM |
%r | 시간. 12hour (hh:mm:ss AM or PM) |
%S | 초. Seconds (00-59) |
%s | 초. Seconds (00-59) |
%T | 24시간. 24-hour (hh:mm:ss) |
%U | 일요일이 첫날인 주. Week (00-53) |
%u | 월요일이 첫날인 주. Week (00-53) |
%V | 일요일이 첫날인 주. %X와 함께 사용 가능.(01-53) |
%v | 월요일이 첫날인 주. %x와 함께 사용 가능.(01-53) |
%W | 요일. 영문 이름. (Sunday-Saturday) |
%w | 주간. 숫자 표기. (0=Sunday, 6=Saturday) |
%X | 년. 네 자리 숫자. 일요일이 첫날인 주 단위로 계산(0000, …, 9999). %V와 함께 사용 가능. |
%x | 년. 네 자리 숫자. 월요일이 첫날인 주 단위로 계산(0000, …, 9999). %v와 함께 사용 가능. |
%Y | 년. 네 자리 숫자. (0001, …, 9999) |
%y | 년. 두 자리 숫자. (01, …, 99) |
예 1-7
SELECT DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p'),
DATE_FORMAT(NOW(),'%m-%d-%Y'),
DATE_FORMAT(NOW(),'%d %b %y'),
DATE_FORMAT(NOW(),'%d %b %Y %T:%f');
결과
DATE_FORMAT (NOW(),'%b %d %Y %h:%i %p') | DATE_FORMAT (NOW(),'%m-%d-%Y') | DATE_FORMAT (NOW(),'%d %b %y') | DATE_FORMAT (NOW(),'%d %b %Y %T:%f') |
Jan 25 2017 09:57 PM | 01-25-2017 | 25 Jan 17 | 25 Jan 2017 21:57:09:000000 |
Date Data 형식:
DATE - format YYYY-MM-DD
DATETIME - format: YYYY-MM-DD HH:MI:SS
TIMESTAMP - format: YYYY-MM-DD HH:MI:SS
YEAR - format YYYY 또는 YY
'COMPUTER > Mysql' 카테고리의 다른 글
3. Mysql 함수(3) -바닥부터 배우는 Mysql - (0) | 2017.02.01 |
---|---|
2. Mysql 함수(2) -바닥부터 배우는 Mysql - (0) | 2017.01.29 |
5. Mysql: 기본 명령문(4) -바닥부터 배우는 Mysql - (0) | 2017.01.24 |
4. Mysql: 기본 명령문(3) -바닥부터 배우는 Mysql - (0) | 2017.01.22 |
3. Mysql: 기본 명령문(2) -바닥부터 배우는 Mysql - (0) | 2017.01.21 |