-
MySQL commend 출력 및 명령어Data Base/MySQL 2007. 11. 28. 11:43
MySQL 함수 2-1 날짜 및 시간 관련 칼럼 함수 첫번째
아노..함수 입니다..
갠적으로 싫어하는 게 함수라..
양은 양대로 많고..이해한다고 해도..
놓치지 쉬운 부분이라..
실제로 사용하는 거 몇가지 빼고는..
거의 모르고 살게 되지요..
예전 웹마스터 교육 받고..
그 당시 인기던..
pure lite dream 아이콘 방명록..
이름이 맞나 모르겠네..
그거 제작자한테 허락맞고 cgi 였던거를
php 로 컨버팅한적 있는데..
웹프로그래밍 만들때는 MySQL 보다 php 함수가 더 큰 영향을 받아서..
MySQL 기분 문법 select insert update delete 밖에 안 썻었지..
지금 보니..
최종 수정 시간 입력할때..
단지..MySQL 함수 하나로 끝날 수 있었네..
php 로 할때..
일일히 시간 구해서 업데이트 방식 썻었는데..
머 이로서..
짜기전에 함수 한번 정도 알아 두면 좋다 ㅇㅅㅇ
라는 거지요..
그럼 시작 하겠습니다.
----------------------------------------------------------------------------------------
- 날짜 및 시간 관련 함수
날짜 시간 관련 칼럼 타입
- 날짜 관련 타입은 문자 칼럼 타입 (char, varchar 등), 숫자 칼럼 타입 (int, smallint 등)
- 과 함깨 가장 많이 사용되는 칼럼이다.
- DATE
- 날짜 타입이다. '1000 - 01 - 01' 에서 '9999 - 12 - 31' 까지 나타낼 수 있다.
- 기본적으로 지원 하는 형태는 'YYYY - MM - DD' 이다.
- DATETIME
- 날짜와 시간이 합쳐진 형태이다. '1000 - 01 - 01 00:00:00' 에서 '9999 - 12 - 31 23:59:59'
- 까지 나타낼 수 있다.
- 기본적으로 지원하는 형태는 'YYYY - MM - DD HH:MM:SS' 이다.
- TIMESTAMP[(M)]
- 날짜 및 시간 타입이다. '1970 - 01 - 01 00:00:00' 에서 2037 년 어느 때까지 나타낸다.
- [(M)] 자리에는 출력될 길이를 나타내는 숫자를 쓸 수 있는데 14 나 12 나 8 혹은 6 을
- 쓸수 있다. 숫자를 쓰지 않으면 기본적으로 14 자리로 나타낸다.
- TIMESTAMP 의 특징은 자동 변경 칼럼 타입이라는 것이다. 이것은 INSERT 나 UPDATE
- 문을 사용할때 매우 유용하다.
mysql> desc customers;
+--------------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+---------------+------+-----+---------+----------------+
| customers_id | int(5) | | PRI | NULL | auto_increment |
| gender | char(1) | | | | |
| name | varchar(32) | | | | |
| job | varchar(30) | | | | |
| email | varchar(35) | | | | |
| address | varchar(100) | | | | |
| telephone | varchar(14) | | | | |
| registdate | date | YES | | NULL | |
| modifydate | timestamp(14) | YES | | NULL | |
| password | varchar(12) | | | | |
+--------------+---------------+------+-----+---------+----------------+
10 rows in set (0.06 sec)mysql>
- 현재 customers 테이블의 modifydate 칼럼은 TIMESTAMP(14) 로 정의되어 있다.
mysql> select name, telephone, modifydate from customers where name = '장영실';
+--------+--------------+----------------+
| name | telephone | modifydate |
+--------+--------------+----------------+
| 장영실 | 051-665-6789 | 20020903162508 |
+--------+--------------+----------------+
1 row in set (0.00 sec)mysql>
- 장영실 이라는 고객에 대해 다음과 같은 데이터가 들어있다.
mysql> update customers set telephone = '051-665-1234' where name = '장영실';
Query OK, 1 row affected (0.45 sec)
일치하는 Rows : 1개 변경됨: 1개 경고: 0개- 위와 같이 '장영실' 의 전화번호를 update 문으로 변경하여 보다.
mysql> select name, telephone, modifydate from customers where name = '장영실';
+--------+--------------+----------------+
| name | telephone | modifydate |
+--------+--------------+----------------+
| 장영실 | 051-665-1234 | 20061005162108 |
+--------+--------------+----------------+
1 row in set (0.00 sec)mysql>
- 전화번호만 변경 했음에도 불구하고 자동으로 modifydate 칼럼의 값도 현재 날짜로
- 변경되는 것을 볼 수 있다. 즉 TIMESTAMP 칼럼은 데이터가 수정된 날짜를
- 자동으로 체크하는데 유용하게 사용할 수 있는 칼럼이다.
- TIME
- 시간 타입니다. '-838:59:59' 에서 '838:59:59' 까지 나타낼 수 있다.
- 기본적으로 지원하는 형태는 'HH:MM:SS' 이다.
- YEAR
- 연도를 나타내는 타입이다. 2자리 혹은 4자리로 나타낼 수 있으며 자리수를 정하지 않으면
- 기본적으로 4자리로 나타낸다. 4자리로 사용할 때는 1901에서 2155년까지 지원하며
- 2자리로 사용할 때는 1970에서 2069년짜지 지원한다. (70-69)
- 위의 것은 칼럼을 생성할 때 옵션 문으로 들어 간다.
날짜 및 시간 관련 함수
- MySQL 에서는 날짜 및 시간 관련하여 매우 다양하고 유용한 함수들을 지원한다.
mysql> select name, modifydate from customers;
+----------+----------------+
| name | modifydate |
+----------+----------------+
| 방정환 | 20020213150234 |
| 한용운 | 20011124201452 |
| 김정호 | 20011124230126 |
| 허난설헌 | 20000305092412 |
| 우장춘 | 20020312183521 |
| 장영실 | 20061005162108 |
| 안익태 | 20010824010354 |
| 신사임당 | 20020317224541 |
| 허준 | 20020816175657 |
| 황진이 | 20011230204703 |
+----------+----------------+
10 rows in set (0.00 sec)mysql>
- 다음 예는 customers 테이블로부터 지난 30일간 변경된 적이 있는 로우룰 추출하는 예이다.
mysql> select name, modifydate from customers where to_days(now()) - to_days(modifydate) <= 30;
+--------+----------------+
| name | modifydate |
+--------+----------------+
| 장영실 | 20061005162108 |
+--------+----------------+
1 row in set (0.47 sec)mysql>
- 지금부터 TO_DAYS(), NOW() 와 같은 날짜 및 시간 관련 함수들을 하나씩 알아 보겠다.
- to_days(now()) - to_days(modifydate) <= 30;
- 현재 날짜 시간 - 각 로우의 최종수정된 시간 의 값이 30 보다 적을 것 을 나타냄
- DAYOFWEEK(date)
- 지정한 날짜가 그 주의 몇번째 요일인가를 가져온다.(1=일요일, 2=월요일, ... 7=토요일)
- 2006년 10월 5일은 목요일이므로 5번째 요일이다.
mysql> select dayofweek('2006-10-5');
+------------------------+
| dayofweek('2006-10-5') |
+------------------------+
| 5 |
+------------------------+
1 row in set (0.00 sec)mysql>
- WEEKDAY(date)
- DAYOFWEEK(date) 와 같으나 0은 월요일, 1은 화요일 ... 6은 일요일을 의미한다.
mysql> select weekday('2006-10-5');
+----------------------+
| weekday('2006-10-5') |
+----------------------+
| 3 |
+----------------------+
1 row in set (0.00 sec)mysql>
- DAYOFMONTH(date)- 1에서 31까지 중 해당 달의 몇번째 날인지를 가져온다.
mysql> select dayofmonth('2006-10-5');
+-------------------------+
| dayofmonth('2006-10-5') |
+-------------------------+
| 5 |
+-------------------------+
1 row in set (0.00 sec)mysql>
- DAYOFYEAR(date)
- 1에서 366까지 중 해당 연도의 몇번째 날인지를 가져온다.
mysql> select dayofyear('2006-10-5');
+------------------------+
| dayofyear('2006-10-5') |
+------------------------+
| 278 |
+------------------------+
1 row in set (0.00 sec)mysql>
- MONTH(date)
- 1에서 12까지 중 해당 연도의 몇번째 달인지를 가져온다.
mysql> select month('2006-10-5');
+--------------------+
| month('2006-10-5') |
+--------------------+
| 10 |
+--------------------+
1 row in set (0.00 sec)mysql>
- DAYNAME(date)
- 해당 날짜의 요일명을 가져온다.
mysql> select dayname('2006-10-5');
+----------------------+
| dayname('2006-10-5') |
+----------------------+
| Thursday |
+----------------------+
1 row in set (0.00 sec)mysql>
- MONTHNAME(date)
- 해당 달의 이름을 가져온다.
mysql> select monthname('2006-10-5');
+------------------------+
| monthname('2006-10-5') |
+------------------------+
| October |
+------------------------+
1 row in set (0.00 sec)mysql>
- QUARTER(date)
- 분기를 계산할 때 유용한 함수이다.
- 1년을 4분기로 나누어 1에서 4까지 중 해당 분기를 가져온다.
mysql> select quarter('2006-10-5');
+----------------------+
| quarter('2006-10-5') |
+----------------------+
| 4 |
+----------------------+
1 row in set (0.00 sec)mysql>
- WEEK(date)
- 해당연도의 몇번째 주인가를 가져온다.
mysql> select week('2006-10-5');
+-------------------+
| week('2006-10-5') |
+-------------------+
| 40 |
+-------------------+
1 row in set (0.00 sec)mysql>
- WEEK(date,first)
- week(date) 와 동일하나 한 주의 기준을 정할 수 있다.
- first 인자에 0을 쓰면 일요일로 시작되는 주를 기준으로 순서를 가져오며
- 1을 쓰면 월요일로 시작되는 주를 기준으로 순서를 가져온다.
- MySQL 4.0 에서 first 에 해당하는 인자가 0 이고 해당 날짜가 전년도의 마지막 주에 해당
- 하면 0을 가져온다.
mysql> select week('2006-01-01'), week('2006-01-01',1), week('2006-01-01',0);
+--------------------+----------------------+----------------------+
| week('2006-01-01') | week('2006-01-01',1) | week('2006-01-01',0) |
+--------------------+----------------------+----------------------+
| 1 | 0 | 1 |
+--------------------+----------------------+----------------------+
1 row in set (0.00 sec)mysql>
- YEAR(date)
- 1000 에서 9999 까지의 연도를 가져온다.
mysql> select year('2006-10-5');
+-------------------+
| year('2006-10-5') |
+-------------------+
| 2006 |
+-------------------+
1 row in set (0.00 sec)mysql>
- YEARWEEK(date)
- 연도와 몇번째 주인가를 동시에 가져온다.
mysql> select yearweek('2006-10-5');
+-----------------------+
| yearweek('2006-10-5') |
+-----------------------+
| 200640 |
+-----------------------+
1 row in set (0.00 sec)mysql>
- YEARWEEK(date,first)
- yearweek(date) 와 동일하며 week(date,first) 에서 처럼 first에 한 주의 기준을
- 정할 수 있다. first에 해당하는 인자가 0이고 해당 날짜가 전년도의 마지막 주에
- 해당하면 전년도와 전년도의 마지막 주에 해당하는 순서를 가져온다.
mysql> select yearweek('2006-10-5',0), yearweek('2006-10-5',1);
+-------------------------+-------------------------+
| yearweek('2006-10-5',0) | yearweek('2006-10-5',1) |
+-------------------------+-------------------------+
| 200640 | 200640 |
+-------------------------+-------------------------+
1 row in set (0.00 sec)mysql>
- HOUR(time)
- 0 에서 23 까지 중 해당 시간을 가져온다.
mysql> select hour('17:09:40');
+------------------+
| hour('17:09:40') |
+------------------+
| 17 |
+------------------+
1 row in set (0.00 sec)mysql>
- MINUTE(time)
- 0 에서 59 까지의 숫자 중 해당 분을 가져온다.
mysql> select minute('17:09:40');
+--------------------+
| minute('17:09:40') |
+--------------------+
| 9 |
+--------------------+
1 row in set (0.00 sec)mysql>
- SECOND(time)
- 0 에서 59 까지의 숫자 중 해당 초를 가져온다.
mysql> select second('17:09:40');
+--------------------+
| second('17:09:40') |
+--------------------+
| 40 |
+--------------------+
1 row in set (0.00 sec)mysql>
- PERIOD_ADD(P,N)- P 기간에 N 달 만큼 더한 결과를 YYYYMM 형태로 가져온다.
- 이때 P 는 YYMM 혹은 YYYYMM 형태일 뿐 date 값은 아님에 유의하시 바란다.
mysql> select period_add(9810,2);
+--------------------+
| period_add(9810,2) |
+--------------------+
| 199812 |
+--------------------+
1 row in set (0.00 sec)mysql>
- PERIOD_DIFF(P1,P2)
- YYMM 혹은 YYYYMM 형태의 P1 과 P2 가 몇달 사이인지 가져온다.
- 이때 P1, P2 는 date 값이 아니다.
mysql> select period_diff(9802,199703);
+--------------------------+
| period_diff(9802,199703) |
+--------------------------+
| 11 |
+--------------------------+
1 row in set (0.00 sec)mysql>
- DATE_ADD(date,INTERVAL expr type) 혹은 ADDDATE(date,INTERVAL expr type)
- date 로부터 expr 만큼 type 단위로 더한 결과를 가져온다.
- DATE_SUB(date,INTERVAL expr type) 혹은 SUBDATE(data,INTERVAL expr type)
- date 로부터 expr 만큼 type 단위로 뺀 견롸를 가져온다.
- expr 과 type 이 어떻게 관계를 가지는지 나타낸 표는 다음과 같다.
+----------------------------------------+
| type 값 | expr 형태 |
+----------------------------------------+
| SECOND | 초 |
| MINUTE | 분 |
| HOUR | 시 |
| DAY | 날 |
| MONTH | 달 |
| YEAR | 년 |
| MINUTE_SECOND | 분:초 |
| HOUR_MINUTE | 시:분 |
| DAY_HOUR | 날 시 |
| YEAR_MONTH | 년-달 |
| HOUR_SECOND | 시:분:초 |
| DAY_MINUTE | 날 시:분 |
| DAY_SECOND | 날 시:분:초 |
+----------------------+-----------------+
mysql> select date_add("1997-12-31 23:59:59", interval 1 day);
+-------------------------------------------------+
| date_add("1997-12-31 23:59:59", interval 1 day) |
+-------------------------------------------------+
| 1998-01-01 23:59:59 |
+-------------------------------------------------+
1 row in set (0.00 sec)mysql>
- 1997-12-31 23:59:59 에 하루를 더해서 1998-01-01 23:59:59 값이 리턴된다.
mysql> select date_add("1997-12-31 23:59:59", interval "1:1" minute_second);
+---------------------------------------------------------------+
| date_add("1997-12-31 23:59:59", interval "1:1" minute_second) |
+---------------------------------------------------------------+
| 1998-01-01 00:01:00 |
+---------------------------------------------------------------+
1 row in set (0.00 sec)mysql>
- 1997-12-31 23:59:59 에 1분 1초가 더해져서 1998-01-01 00:01:00 값이 리턴된다.
mysql> select date_add("1998-01-01 00:00:00", interval "-1 10" day_hour);
+------------------------------------------------------------+
| date_add("1998-01-01 00:00:00", interval "-1 10" day_hour) |
+------------------------------------------------------------+
| 1997-12-30 14:00:00 |
+------------------------------------------------------------+
1 row in set (0.00 sec)mysql>
- 1998-01-01 00:00:00 에서 하루 10시간 이전 즉 34시간 이전 의 값인
- 1997-12-30 14:00:00 이 리턴된다.
mysql> select date_sub("1998-01-02", interval 31 day);
+-----------------------------------------+
| date_sub("1998-01-02", interval 31 day) |
+-----------------------------------------+
| 1997-12-02 |
+-----------------------------------------+
1 row in set (0.00 sec)mysql>
- 1998-01-02 에서 31일이 빼어진 1997-12-02 가 리턴된다.
mysql> select date_add("1998-01-30", interval 1 month);
+------------------------------------------+
| date_add("1998-01-30", interval 1 month) |
+------------------------------------------+
| 1998-02-28 |
+------------------------------------------+
1 row in set (0.00 sec)mysql>
- 위와 같이 30 일 간격의 날짜가 2 달을 넘어가게 될 경우 MONTH 간격은 30일 간격이
- 아니라 다음 달의 마지막 날까지로 계산한다.
- EXTRACT(type FROM date)
- date 로부터 type 형태로 결과를 추출하여 가져온다.
- 이때 type 은 DATE_ADD(), DATE_SUB() 에서 사용하는 type 과 같은 형태이다.
mysql> select extract(day_hour from "1998-12-31 23:33:33");
+----------------------------------------------+
| extract(day_hour from "1998-12-31 23:33:33") |
+----------------------------------------------+
| 3123 |
+----------------------------------------------+
1 row in set (0.00 sec)mysql>
- TO_DAYS(date)
- 0 년부터 계산한 날짜수를 가져온다.
- 참고로 TO_DAYS()는 그레고리력(1582)을 따르지 않는다.
mysql> select to_days('2006-10-05');
+-----------------------+
| to_days('2006-10-05') |
+-----------------------+
| 732954 |
+-----------------------+
1 row in set (0.00 sec)mysql>
- FROM_DAYS(N)
- 0 년부터 계산된 날짜수로부터 날짜를 가져온다.
- 참고로 FROM_DAYS()는 그레고리력(1582)을 따르지 않는다.
mysql> select from_days('732954');
+---------------------+
| from_days('732954') |
+---------------------+
| 2006-10-05 |
+---------------------+
1 row in set (0.00 sec)mysql>
- DATE_FORMAT(date,format)
- 날짜를 원하는 문자열 형태로 바꿀 때 매우 유용하게 사용되는 함수이다.
- format 에는 특정한 문자들을 열거하여 원하는 문자열을 만든다.
- format 에 열거할 수 있는 문자와 그 설명은 다음 표와 같다.
+------+-------------------------------------------------------------------------------+
|열거자| 설명 |
+------+-------------------------------------------------------------------------------+
| %M | 달 이름 (January, December) |
| %W | 요일 이름 (Sunday, Saturday) |
| %D | 1st, 2nd 와 같은 영문법에 의한 해당 달의 날짜 |
| %Y | YYYY 형태의 연도 |
| %y | YY 형태의 연도 |
| %X | 해당 날짜에 대해 일요일로 시작하는 주를 기준으로 YYYY 형태의 연도를 가져온다. |
| | %v 와 함깨 쓰인다. |
| %x | 해당 날짜에 대해 월요일로 시작되는 주를 기준으로 YYYY 형태의 연도를 가져온다. |
| | %v 와 함깨 쓰인다. |
| %a | Sun, Sat 와 같은 요일의 약어 |
| %d | 00 에서 31 까지의 해당 달의 날짜 |
| %e | 0 에서 31 까지의 해당 달의 날짜 |
| %m | 01 에서 12 까지의 해당 년의 달 |
| %c | 1 에서 12 까지의 해당 년의 달 |
| %b | Jan, Dec 와 같은 달의 약어 |
| %j | 001 에서 366 까지의 해당 년의 날짜 |
| %H | 00 에서 23 까지의 시 |
| %k | 0 에서 23 까지의 시 |
| %h | 01 에서 12 까지의 시 |
| %l | 01 에서 12 까지의 시 |
| %L | 1 에서 12 까지의 시 |
| %i | 00 에서 59 까지의 분 |
| %r | 12 시간 기준으로 시간을 hh:mm:ss [AP]M 형태로 가져온다. |
| %T | 24 시간 기준으로 시간을 hh:mm:ss 형태로 가져온다. |
| %S | 00 에서 59 까지의 초 |
| %s | 00 에서 59 까지의 초 ( %S 와 같다. ) |
| %p | AM 혹은 PM |
| %w | 0 에서 6 까지 요일을 가져온다. ( 0=Sunday..6=Saturday ) |
| %U | 00 에서 53 까지 해당 년의 몇번째 주인가를 가져온다. 일요일이 시작인 주를 기준 |
| %u | 00 에서 53 까지 해당 년의 몇번째 주인가를 가져온다. 월요일이 시작인 주를 기준 |
| %V | 01 에서 53 까지 해당 년의 몇번째 주인가를 가져온다. 일요일이 시작인 주를 기준 |
| | ' %X ' 와 함깨 쓰인다. |
| %v | 01 에서 53 까지 해당 년의 몇번째 주인가를 가져온다. 월요일이 시작인 주를 기준 |
| | ' %x ' 와 함깨 쓰인다. |
| %% | ' % ' 문자를 그대로 가져온다. |
+-----+--------------------------------------------------------------------------------+
mysql> select date_format('1997-10-04 22:23:00', '%W %M %Y');
+------------------------------------------------+
| date_format('1997-10-04 22:23:00', '%W %M %Y') |
+------------------------------------------------+
| Saturday October 1997 |
+------------------------------------------------+
1 row in set (0.09 sec)mysql>
- %W 는 요일 이름을 리턴, %M 은 달 이름을 리턴, %Y는 YYYY 형태의 연도를 리턴
mysql> select date_format('1997-10-04 22:23:00', '%H:%i:%s');
+------------------------------------------------+
| date_format('1997-10-04 22:23:00', '%H:%i:%s') |
+------------------------------------------------+
| 22:23:00 |
+------------------------------------------------+
1 row in set (0.00 sec)mysql>
- %H는 00에서 23까지의 시를 리턴,%i 는 00에서 59까지의 분을 리턴,%s 00에서 59까지의 초 리턴mysql> select date_format('1999-01-01', '%X %V');
+------------------------------------+
| date_format('1999-01-01', '%X %V') |
+------------------------------------+
| 1998 52 |
+------------------------------------+
1 row in set (0.00 sec)mysql>
- %X 는 해당 날짜에 대해 일요일로 시작하는 주를 기준으로 YYYY 형태의 연도를 리턴
- %V 는 01 에서 53 까지의 해당 년의 몇번째 주인가를 리턴. 일요일이 시작인 주를 기준
- TIME_FORMAT(time, format)
- DATE_FORMAT() 과 같은 방법으로 사용되는 함수이다. 단지 time 에 시간 값이 들어가고
- format 에는 DATE_FORMAT() 에서 사용하는 열거자 중 시간이나 분, 초에 해당하는
- 열거자만 들어가야 한다는 차이다 있다.
- CURDATE() 혹은 CURRENT_DATE()
- 함수가 문자열처럼 사용되느냐 숫자처럼 사용되느냐에 따라 현재 날짜를 'YYYY-HH-DD'
- 혹은 'YYYYMMDD' 형태로 가져온다.
mysql> select curdate(), curdate()+0, curdate()+1;
+------------+-------------+-------------+
| curdate() | curdate()+0 | curdate()+1 |
+------------+-------------+-------------+
| 2006-10-06 | 20061006 | 20061007 |
+------------+-------------+-------------+
1 row in set (0.00 sec)mysql>
- CURTIME() 혹은 CURRENT_TIME
- 함수가 문자열처럼 사용되느냐 숫자처럼 사용되느냐에 따라 현재 시간은 'HH:MM:SS'
- 혹은 'HHMMSS' 형태로 가져온다.
mysql> select curtime(), curtime()+0, curtime()+1;
+-----------+-------------+-------------+
| curtime() | curtime()+0 | curtime()+1 |
+-----------+-------------+-------------+
| 01:08:59 | 10859 | 10860 |
+-----------+-------------+-------------+
1 row in set (0.00 sec)mysql>
- UNIX_TIMESTAMP 혹은 UNIX_TIMESTAMP(date)
- 인자가 없는 경우에는 현재의 Unix 시간 ('1970-01-01 00:00:00' 을 기준으로 초단위) 을
- 가져온다. date 인자가 있는 경우에는 date 의 Unix 시간 ('1970-01-01 00:00:00' 을
- 기준으로 초단위) 을 가져온다.
mysql> select unix_timestamp(), unix_timestamp('2002-05-04 22:23:00');
+------------------+---------------------------------------+
| unix_timestamp() | unix_timestamp('2002-05-04 22:23:00') |
+------------------+---------------------------------------+
| 1160066173 | 1020518580 |
+------------------+---------------------------------------+
1 row in set (0.00 sec)mysql>
- FROM_UNIXTIME(unix_timestamp)
- 문자열처럼 사용되느냐 숫자처럼 사용되느냐에 따라 유닉스 시간을 'YYYY-MM-DD HH:MM:SS'
- 혹은 'YYYYMMDDHHMMSS' 형태로 가져온다.
- FROM_UNIXTIME(unix_timestamp,format)
- 유닉스 시간을 원하는 형태로 변환하여 가져온다. format 에 들어갈 열거자들은
- DATE_FORMAT() 함수에서 사용하는 열거자들을 사용할 수 있다.
mysql> select from_unixtime(unix_timestamp(), '%Y %D %M %h:%i:%s %x');
+-----------------------------------------------------------+
| from_unixtime(unix_timestamp(), '%Y %D %M %h:%i:%s %x') |
+-----------------------------------------------------------+
| 2006 6th October 01:40:17 2006 |
+-----------------------------------------------------------+
1 row in set (0.38 sec)mysql>
- SEC_TO_TIME(seconds)
- 초를 시,분,초 형태로 변환한다. 함수가 문자열처럼 사용되느냐 숫자처럼 사용되느냐에 따라
- 'HH:MM:SS' 혹은 'HHMMSS' 형태로 가져온다.
mysql> select sec_to_time(2378);
+-------------------+
| sec_to_time(2378) |
+-------------------+
| 00:39:38 |
+-------------------+
1 row in set (0.36 sec)mysql>
- TIME_TO_SEC(time)
- time 을 초로 변환한다.
mysql> select time_to_sec('22:23:00');
+-------------------------+
| time_to_sec('22:23:00') |
+-------------------------+
| 80580 |
+-------------------------+
1 row in set (0.00 sec)mysql>
'Data Base > MySQL' 카테고리의 다른 글
mysql 을 설치했는데...자꾸 삐삐 거리면서 신경 거스르는 소리가 났지만 해결. (0) 2008.04.10 java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver (0) 2008.03.12 Mysql 설치한 후... (0) 2008.03.07 ResultSet에서 LONG VARCHAR 읽어오기 (0) 2007.11.26 MySQL에서 이런 오류가 발생해서 봤는데... (0) 2007.11.26 데이터 베이스 식별을 위한JDBC URL (0) 2007.11.23 한글 깨짐을 server.xml로 제어하는 방법 (0) 2007.11.23