[ Mysql ] 시간및 날짜 함수 정리 > database

본문 바로가기
사이트 내 전체검색

database

[ Mysql ] 시간및 날짜 함수 정리

페이지 정보

작성자 웹지기 댓글 0건 조회 7,577회 작성일 18-09-11 11:47

본문

MySQL에서 사용되는 날짜 함수에 대해서 정리합니다.
아래 정리된 함수중 절반만 숙지해도 날짜 및 시간에 대해서는 쉽게 컨트롤할 수 있을것 같네요^^

현재 날짜 및 시간을 얻는 함수


- NOW() : 현재 날짜 및 시간을 반환합니다.
- SYSDATE() : NOW()와 동일합니다.
mysql> select NOW();
+---------------------+
| NOW()                           |
+---------------------+
| 2014-09-30 14:33:11     |
+---------------------+
1 row in set (0.00 sec)
mysql> select SYSDATE();
+---------------------+
| SYSDATE()                     |
+---------------------+
| 2014-09-30 14:33:15      |
+---------------------+
1 row in set (0.00 sec)
-
CURDATE()
: 현재 날짜를 반환합니다.
mysql> select CURDATE();
+------------+
| CURDATE()    |
+------------+
| 2014-09-30   |
+------------+
1 row in set (0.00 sec)
- CURTIME() : 현재 시간을 반환합니다.
mysql> select CURTIME();
+-----------+
| CURTIME()   |
+-----------+
| 14:33:40      |
+-----------+
1 row in set (0.00 sec)
- UNIX_TIMESTAMP() : 현재 유닉스 시간을 반환합니다.유닉스 시간은 '1970-01-01 00:00:00'으로부터 경과한 시간을 초단위로 표현합니다.
mysql> select UNIX_TIMESTAMP();
+------------------+
| UNIX_TIMESTAMP()    |
+------------------+
|       1412056532        |
+------------------+
1 row in set (0.00 sec)


특정 형태 반환 함수


-DAYOFWEEK(date) :
해당 날짜의 요일을 숫자로 반환합니다. 일요일 : 1 ~ 토요일 : 7 mysql> select DAYOFWEEK('2014-09-30');
+-------------------------+
| DAYOFWEEK('2014-09-30')    |
+-------------------------+
+-------------------------+
1 row in set (0.00 sec)
- WEEKDAY(date)
: 해당 날짜의 요일을 숫자로 반환합니다. 월요일 : 0 ~ 일요일 : 6

MariaDB [(none)]> select WEEKDAY('2014-09-30');  
+-----------------------+
| WEEKDAY('2014-09-30')    |
+-----------------------+
|                     1                  |
+-----------------------+
1 row in set (0.00 sec)
위 두 함수의 경우 모두 요일을 반환하지만 반환하는 값이 다르므로 사용 시 주의를 요합니다.
- DAYOFYEAR(date) : 해당 날짜의 1월 1일 부터의 경과 일수를 반환합니다. 결과값은 1~366입니다.

mysql> select DAYOFYEAR(NOW());
+------------------+
| DAYOFYEAR(NOW())  |
+------------------+
|              273             |
+------------------+
1 row in set (0.00 sec)
- YEAR(date) : 해당 날짜의 년을 반환합니다.

mysql> select YEAR(NOW());
+-------------+
| YEAR(NOW())   |
+-------------+
|        2014        |
+-------------+
1 row in set (0.00 sec)
- MONTH(date) : 해당 날짜의 월을 반환합니다.

mysql> select MONTH(NOW());
+--------------+
| MONTH(NOW())  |
+--------------+
|            9           |
+--------------+
1 row in set (0.00 sec)
- DAYOFMONTH(date) : 해당 날짜의 일을 반환합니다.

mysql> select DAYOFMONTH(NOW());
+-------------------+
| DAYOFMONTH(NOW()) |
+-------------------+
|                30               |
+-------------------+
1 row in set (0.00 sec)
- HOUR(time) : 해당 날짜의 시간을 반환합니다.

mysql> select HOUR(NOW());      
+-------------+
| HOUR(NOW())  |
+-------------+
|          16          |
+-------------+
1 row in set (0.00 sec)
- MINUTE(time) : 해당 날짜의 분을 반환합니다.

mysql> select MINUTE(NOW());
+---------------+
| MINUTE(NOW())   |
+---------------+
|            55           |
+---------------+
1 row in set (0.00 sec)
- SECOND(time) : 해당 날짜의 초를 반환합니다.

mysql> select SECOND(NOW());  
+---------------+
| SECOND(NOW())  |
+---------------+
|            20            |
+---------------+
1 row in set (0.00 sec)
- DAYNAME(date) : 해당 날짜의 요일 이름을 반환합니다. ex) Tuesday

mysql> select DAYNAME(NOW());
+----------------+
| DAYNAME(NOW())  |
+----------------+
| Tuesday                |
+----------------+
1 row in set (0.00 sec)
- MONTHNAME(date) : 해당 날짜의 월 이름을 반환합니다. ex) September

mysql> select MONTHNAME(NOW());
+------------------+
| MONTHNAME(NOW()) |
+------------------+
| September                |
+------------------+
1 row in set (0.00 sec)
- QUARTER(date) : 해당 날짜의 분기를 반환합니다. 범위는 1 ~ 4 입니다.

mysql> select QUARTER(NOW());
+----------------+
| QUARTER(NOW())  |
+----------------+
|              3             |
+----------------+
1 row in set (0.00 sec)
- WEEK(date, first) : 해당 날짜의 주 수를 반환합니다. 두번째 인자가 0인 경우 일요일, 1인 경우 월요일부터 주의 시작을 계산합니다.

mysql> select WEEK(NOW(), 0);
+----------------+
| WEEK(NOW(), 0)    |
+----------------+
|             39            |
+----------------+
1 row in set (0.00 sec)



날짜 및 시간 편집 함수



- PERIOD_ADD(P, N) : P(YYYYMM 혹은 YYMM)에 N의 달 수를 더한 값을 반환한다.
mysql> select PERIOD_ADD(201409, 10);     
+------------------------+
| PERIOD_ADD(201409, 10)    |
+------------------------+
|                 201507               |
+------------------------+
1 row in set (0.00 sec)
- PERIOD_DIFF(P1, P2) : P1과 P2(둘 모두 YYYYMM 혹은 YYMM) 사이의 달 수를 반환한다. 만약 P2가 큰 경우 마이너스 값이 반환된다.

mysql> select PERIOD_DIFF(201701, 201409);   
+-----------------------------+
| PERIOD_DIFF(201701, 201409)      |
+-----------------------------+
|                          28                      |
+-----------------------------+
1 row in set (0.00 sec)
- DATE_ADD(date, INTERVAL expr type) : 해당 날짜에서 뒤의 인자만큼 더한 날짜를 반환합니다.
- ADDDATE(date, INTERVAL expr type) : DATE_ADD()와 동일합니다.

mysql> select DATE_ADD(NOW(), INTERVAL 10 DAY);
+----------------------------------+
| DATE_ADD(NOW(), INTERVAL 10 DAY)     |
+----------------------------------+
| 2014-10-10 17:20:45                            |
+----------------------------------+
1 row in set (0.00 sec)

mysql> select ADDDATE(NOW(), INTERVAL 10 DAY);       
+---------------------------------+
| ADDDATE(NOW(), INTERVAL 10 DAY)     |
+---------------------------------+
| 2014-10-10 17:20:45
    
                    |
+---------------------------------+
1 row in set (0.00 sec)
* type에 사용되는 키워드는 SECOND, MINUTE, HOUR, DAY, MONTH, YEAR, MINUTE_SECOND, HOUR_MINUTE, DAY_HOUR, YEAR_MONTH, HOUR_SECOND, DAY_MINUTE, DAY_SECOND입니다.
- DATE_SUB(date, INTERVAL expr type) : 해당 날짜에서 뒤의 인자만큼 뺀 날짜를 한환합니다.
- SUBDATE(date, INVERVAL expr type) : DATE_SUB()와 동일합니다.
mysql> select DATE_SUB(NOW(), INTERVAL 10 DAY);  
+----------------------------------+
| DATE_SUB(NOW(), INTERVAL 10 DAY)     |
+----------------------------------+
| 2014-09-20 17:30:28                           |
+----------------------------------+
1 row in set (0.00 sec)

mysql> select SUBDATE(NOW(), INTERVAL 10 DAY); 
+---------------------------------+
| SUBDATE(NOW(), INTERVAL 10 DAY)     |
+---------------------------------+
| 2014-09-20 17:30:28                           |
+---------------------------------+
1 row in set (0.00 sec)
- EXTRACT(type FROM date) : 해당 날짜에서 type을 분리하여 반환합니다.

mysql> select EXTRACT(DAY FROM NOW());      
+-------------------------+
| EXTRACT(DAY FROM NOW())  |
+-------------------------+
|                      30                   |
+-------------------------+
1 row in set (0.00 sec)



기타 함수들


- TO_DAYS(date) : 0년 부터의 날짜수를 반환합니다. 1582년 이전 날에 대해서는 계산하지 않습니다.

MariaDB [(none)]> select TO_DAYS(NOW());
+----------------+
| TO_DAYS(NOW())   |
+----------------+
|         735871         |
+----------------+
1 row in set (0.00 sec)
- FROM_DAYS(N) : 0년부터 N일만큼 지난 날짜를 반환합니다. TO_DYAS에 반대로 동작합니다. 마찬가지로 1582년 이전 날에 대해서는 계산하지 않습니다.

MariaDB [(none)]> select FROM_DAYS(735871);
+-------------------+
| FROM_DAYS(735871)  |
+-------------------+
| 2014-09-30               |
+-------------------+
1 row in set (0.00 sec)
- DATE_FORMAT(date, format) : 날짜를 해당 형식의 문자열로 변환하여 반환합니다.

MariaDB [(none)]> select DATE_FORMAT(NOW(), '%W %Y %M %D');
+-----------------------------------+
| DATE_FORMAT(NOW(), '%W %Y %M %D') |
+-----------------------------------+
| Tuesday 2014 September 30th                  |
+-----------------------------------+
1 row in set (0.00 sec)
* format은 %M(달 이름), %W(요일 이름), %Y(YYYY형식의 연도), %y(YY형식의 연도), %a(요일 이름의 약자), %d(DD 형식의 날짜), %e(D 형식의 날짜), %m(MM 형식의 날짜), %c(M 형식의 날짜), %H(HH 형식의 시간, 24시간 형식), %k(H 형식의 시간, 24시간 형식), %h(HH 형식의 시간, 12시간 형식), %i(MM 형식의 분), %p(AM 또는 PM)이 있습니다.
- TIME_FORMAT(date, format) : 시간을 해당 형식의 문자열로 변환하여 반환합니다.

MariaDB [(none)]> select TIME_FORMAT(CURTIME(), '%p %k %i');
+------------------------------------+
| TIME_FORMAT(CURTIME(), '%p %k %i')      |
+------------------------------------+
| PM 19 47                                                 |
+------------------------------------+
1 row in set (0.00 sec)
- TIME_TO_SEC(time) : 해당 시간의 0시부터의 초를 반환합니다.

MariaDB [(none)]> select TIME_TO_SEC(CURTIME());
+------------------------+

추천0 비추천0

댓글목록

등록된 댓글이 없습니다.

Total 34건 2 페이지
  • 열람중 [ Mysql ] 시간및 날짜 함수 정리
  • MySQL에서 사용되는 날짜 함수에 대해서 정리합니다. 아래 정리된 함수중 절반만 숙지해도 날짜 및 시간에 대해서는 쉽게 컨트롤할 수 있을것 같네요^^ 현재 날짜 및 시간을 얻는 함수 - NOW() : 현재 날짜 및 시간을 반환합니다. - SYSDATE() : NOW()와 동일합니다. mysql> select NOW(); +---------------------+ | NOW() | +---------------------+ | 20...
  • 웹지기 09-11 7578 0 0 댓글 0
  • 18 [ mysql ] 중복데이터 추출 할 때 group by having 각각의 데이터별로 중복값 유무 검색
  • 중복데이터가 몇개이상인 것을 검색하고 싶을 때 중복데이터를 추출 할 때 group by having절을 사용해서 검색을 합니다. 중복데이터가 몇개이상인 것을 검색하고 싶을 때 select *, count(검색필드명 또는 *) as ok from 테이블명 where 필드명=값 group by 검색필드명 having count(검색필드명 또는 *) > n 이런식으로 쿼리를 실행시키면 한 필드마다의 중복된 값들이 표기되며 몇개씩 중복되어 있는지 알 수 가 있다. ...
  • 웹지기 06-10 21478 0 0 댓글 0
  • 16 [ Mysql ] function 만들기
  • 먼저 함수를 정의를 하고 입력할 값을 넣어서 자리를 만들어 준다. 가령 함수를 FN_GET_DELEVERY_ATOTAL() 로 사용하고 싶다고 하고 함수에 들어갈 파라미터 값들을 각각 정의해준다. 그러면 FN_GET_DELEVERY_ATOTAL('id', 'status', 'sdate', 'edata'); 이렇게 해서 검색을 하는 방식이다. 조건문에는 어떤식으로 검색을 할 것인지의 조건을 나열해 주면 된다. DELIMITER $$ CREATE FUNCTIO...
  • 웹지기 05-15 6527 0 0 댓글 0
  • 15 [ mysql ] 데이터 유형과 범위
  • 문자형 데이터타입# 데이터 유형 정의 CHAR(n) 고정 길이 데이터 타입(최대 255byte)- 지정된 길이보다 짦은 데이터 입력될 시 나머지 공간 공백으로 채워진다. VARCHAR(n) 가변 길이 데...
  • 웹지기 12-09 7642 0 0 댓글 0
  • 14 [ Mysql ] 데이터 형 set 사용법
  • SELECT * FROM 테이블명 WHERE 셋형필드명 LIKE '%value%'; SELECT * FROM 테이블명 WHERE FIND_IN_SET('value',필드명) > 0; SELECT * FROM 테이블명 WHERE 필드명='val1,val2'; SELECT * FROM 테이블명 WHERE 필드명 & 1;
  • 웹지기 09-27 6823 0 0 댓글 0
  • 13 [ mysql ] heidiSQL로 db 백업시 테이블명 대소문자 확인
  • heidiSQL db를 백업하면서 lang_ch_ZN lang_en_US 라는 테이블이 있었는데 백업을 해보니 모두 소문자로 백업이 되었다. 게시글을 못가져와서 확인해보니 테이블명 대소문자 때문에 그랬다. 대소문자 꼭 확인하자
  • 장승원 11-04 6809 0 0 댓글 0
  • 12 [ mysql ] CentOS 7 mysql MariaDB 실행 / 설정 / 방화벽 / 계정생성
  • MariaDB 실행하기 마리아db설치는 아래 링크를 따라하세요 https://funyphp.com/archive/knowledge/109 먼저 db가 실행중인지 확인하고 실행중이 아니라면 실행을 시켜줍니다. systemctl status mysql systemctl start mysql 서비스에 등록이 되어있지 않으면 서비스에 등록해 준다. # systemctl enable mariadb.service 방화벽 설정 # firewall-cmd...
  • 웹지기 12-11 7070 0 0 댓글 0
  • 11 [ mysql ] mairadb 비밀번호 오류
  • mysql 비밀번호 오류시 접속이 안되는 현상 기동을 시키고 mysql로 접속해서 user테이블을 확인한다 # mysqld --skip-grant-tables # mysql # select * from user; 접속이 되지 않으면 복구를 시도해본다. # repair table user; # check table user quick; 에러 해결이 안된 경우 +------------+-------+----------+-...
  • 웹지기 07-17 5254 0 0 댓글 0
  • 10 [ mysql ] SQL 정의와 종류(DML, DDL, DCL, TCL)
  • SQL (Structured Query Language) - SQL은 관계형 데이터베이스에서 데이터 정의(DDL), 데이터 조작(DML), 데이터 제어(DCL)를 하기 위해 사용하는 언어 - 단순 스크립트가 아닌 독립된 하나의 개발 언어 - 다른 프로그래밍 언어와 달리 관계형 데이터베이스에 대한 접속 용도만 사용 SQL (Structured Query Language)종류 명령어 종류 명령어 ...
  • 웹지기 05-15 6597 0 0 댓글 0
  • 9 [ mysql ] 데이터 값 일괄 변경( replace )
  • @데이터 검색을 통해서 바꾸고자 하는 문자가 있는지 확인 # SELECT * FROM table_name WHERE column LIKE '%찾는문자열%' @데이터 변경 # UPDATE table_name SET column = REPLACE( column, '기존문자열', '변경문자열' )
  • 웹지기 05-14 13853 0 0 댓글 0
  • 8 [ mysql ] Cannot start session without errors, please check …
  • 세션오류 해결방법 php.ini 를 찾아서 수정해야함session.auto_start = 0 => session.auto_start = 1로 바꾸고 아파치 재시작홈페이지에 오류가 없을시 그대로 사용홈페이지에 오류가 발생하고 phpmyadmin 접속이 정상이라면 phpmyadmin로그인 한번해주고session.auto_start = 1을 다시 session.auto_start = 0 수정하고 아파치 재시작그럼 웹서버 웹db 모두 정상적으로 됨 [이 게시물은 웹지기님에 의해 2019-0...
  • 웹지기 10-01 5449 0 0 댓글 0
  • 7 [ mysql ] mysql_free_result 결과에 대한 메모리(memory)에 있는 내용을 모두 제거
  • mysql_free_result(PHP 3, PHP 4 , PHP 5)mysql_free_result -- Free result memory설명int mysql_free_result ( int result)mysql_free_result()는 result에 대한 메모리(memory)에 있는 내용을 모두 제거한다.mysql_free_result()는 결과로부터 얻은 질의 값이 커서 많은 메모리를 사용할 염려가 있을 때 사용된다. 단, 결과 값은 스크립트(script) 실행부가 종료되면서 메모리에서 ...
  • 웹지기 10-01 6870 0 0 댓글 0
+2
  • 5 [ mysql ] mysql tool HeidiSQL - mariaDB
  • 링크 페이지로 이동하면 heidisql 버젼별 적용된 mariaDB가 보인다. heidisql 링크를 클릭해서 다운로드 페이지로 이동한다. 다운로드 버젼중에 무설치버젼인 Portable-64를 다운받아서 압축을 풀어주면 사용이 가능해진다. 설치가 압축을 풀게 되면 그림처럼 사용이가능해 진다. [이 게시물은 웹지기님에 의해 2019-03-15 15:33:40 knowledge에서 이동 됨]
  • 웹지기 12-26 7047 0 0 댓글 0
게시물 검색

회원로그인

접속자집계

오늘
2,606
어제
8,121
최대
33,828
전체
8,432,754

그누보드5
Copyright © funyphp.com. All rights reserved.