>데이터 베이스 >MySQL 튜토리얼 >MYSQL 날짜 함수 요약

MYSQL 날짜 함수 요약

小云云
小云云원래의
2017-12-04 11:24:351679검색

날짜 및 시간 함수는 수식에서 날짜 값과 시간 값을 분석하고 처리하는 데 사용되는 함수를 말합니다. 이번 글에서는 MYSQL 날짜 함수에 대한 요약을 공유하겠습니다.

각 유형의 값 범위에 대한 설명과 날짜 및 시간 값을 지정하는 데 유효한 형식은 7.3.6 날짜 및 시간 유형을 참조하세요.

다음은 날짜 함수를 사용한 예입니다. 다음 쿼리는 date_col 값이 지난 30일 이내에 있는 모든 레코드를 선택합니다.

mysql> SELECT Something FROM table
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30; 날짜의 요일 인덱스(1=일요일, 2=월요일, ...7=토요일). 이 인덱스 값은 ODBC 표준에 해당합니다.
mysql> select DAYOFWEEK('1998-02-03');
-> 3

WEEKDAY(날짜)
날짜의 주 인덱스를 반환합니다(0=월요일, 1=화요일, ...6=일요일).
mysql> WEEKDAY('1997-10-04 22:23:00')
-> 5
mysql> WEEKDAY('1997-11-05')

DAYOFMONTH(날짜) )
날짜가 속한 달의 일자를 1~31 범위에서 반환합니다.
mysql> select DAYOFMONTH('1998-02-03');
-> 3

DAYOFYEAR(date)
날짜의 일수를 1~366 범위에서 반환합니다.
mysql> select DAYOFYEAR('1998-02-03');
-> 34

MONTH(날짜)
1부터 12까지의 월을 반환합니다.
mysql> select MONTH('1998-02-03');
-> 2

DAYNAME(date)
날짜의 요일을 반환합니다.
mysql> select DAYNAME("1998-02-05")
-> '목요일'

MONTHNAME(date)
날짜의 월 이름을 반환합니다.
mysql> select MONTHNAME("1998-02-05");
-> 'February'

QUARTER(date)
1부터 4까지의 날짜 범위를 반환합니다.
mysql> select QUARTER('98-04-01');
-> 2

WEEK(date)
 
WEEK(date,first)
일요일이 첫날인 경우 단일 매개변수는 0~52 범위의 날짜의 주 수를 반환합니다. 2-인수 형식 WEEK()를 사용하면 주가 일요일 또는 월요일에 시작하는지 지정할 수 있습니다. 두 번째 인수가 0이면 주가 일요일에 시작되고, 두 번째 인수가 1이면
월요일에 시작됩니다.
mysql> WEEK('1998-02-20');
mysql> WEEK('1998-02-20',0) 선택
mysql> -02-20',1);
-> 8

YEAR(날짜)
1000부터 9999까지의 날짜 연도를 반환합니다.
mysql> select YEAR('98-02-03');
-> 1998

HOUR(time)
0에서 23까지의 시간을 반환합니다.
mysql> select HOUR('10:05:03');
-> 10

MINUTE(time)
0에서 59까지의 시간을 반환합니다.
mysql> select MINUTE('98-02-03 10:05:03')
-> 5

SECOND(time)
초 단위로 0에서 59까지의 시간을 반환합니다.
mysql> SECOND('10:05:03');
-> 3

PERIOD_ADD(P,N)
단계 P에 N개월을 추가합니다(YYMM 또는 YYYYMM 형식). YYYYMM 형식으로 값을 반환합니다. 위상 매개변수 P는 날짜 값이 아닙니다.
mysql> select PERIOD_ADD(9801,2);
-> 199803

PERIOD_DIFF(P1,P2)
기간 P1과 P2 사이의 개월 수를 YYMM 또는 YYYYMM 형식으로 반환합니다. 기간 매개변수 P1 및 P2는 날짜 값이 아닙니다.
mysql> select PERIOD_DIFF(9802,199703);
-> 11

DATE_ADD(date,INTERVAL expr type)
 
DATE_SUB(date,INTERVAL expr type)
 
ADDDATE(date,INTERVAL expr type) )
 
SUBDATE ( date,INTERVAL expr 유형)
이 함수는 날짜 작업을 수행합니다. MySQL 3.22부터는 새로운 기능입니다. ADDDATE() 및 SUBDATE()는 DATE_ADD() 및 DATE_SUB()의 동의어입니다.
MySQL 3.23에서는 DATE_ADD() 및 DATE_SUB() 대신 + 및 -를 사용할 수 있습니다. (예 참조) 날짜는 시작 날짜를 지정하는
DATETIME 또는 DATE 값이고, expr은 시작 날짜에 더하거나 뺄 간격 값을 지정하는 표현식이며, expr은
a "로 끝날 수 있는 문자열입니다. - ”는 음의 간격을 나타내기 시작합니다. type은 표현식이 해석되는 방식을 지정하는 키워드입니다. EXTRACT(type FROM date) 함수는 날짜
에서 "type" 간격을 반환합니다. 다음 표는 유형 및 expr 매개변수가 어떻게 관련되어 있는지 보여줍니다. 예상되는 expr 형식을 의미하는 유형 값
SECOND 초 SECONDS
MINUTE 분 MINUTES
HOUR 시간 HOURS
DAY 일 DAYS
MONTH 개월 MONTHS
YEAR 년 YEARS
MINUTE_SECOND 분 및 초 "MINUTES " :SECONDS"
HOUR_MINUTE 시, 분 "HOURS:MINUTES"
DAY_HOUR 일 및 시 "DAYS HOURS"
YEAR_MONTH 연도 및 월 "YEARS-MONTHS"
HOUR_SECOND 시, 분, "HOURS:MINUTES:SECONDS"
DAY_MINUTE 일, 시, 분 "DAYS HOURS:MINUTES"
DAY_SECOND 일, 시, 분, 초 "DAYS HOURS:MINUTES:SECONDS"

MySQL에서는 expr 형식의 구두점 구분 기호를 허용합니다. 권장 구분 기호가 표시됨을 나타냅니다. 날짜 매개변수가 DATE 값이고 계산이
인 경우YEAR, MONTH 및 DAY 구성 요소를 포함하며(즉, 시간 구성 요소 없음) 결과는 DATE 값입니다. 그렇지 않으면 결과는 DATETIME 값입니다.

mysql> SELECT "1997-12-31 23:59:59" + "1997-12-31"
-> 1998-01-01
mysql> - 간격 1초;
-> 1997-12-31 23:59:59
mysql> SELECT DATE_ADD("1997- 12-31 23:59:59",
-> 1998- 01-01 00:00:00
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",
간격 1일)
-> SELECT DATE_ADD("1997-12-31 23:59:59",
INTERVAL "1:1" MINUTE_SECOND)
- > 1998-01-01 00:01:00
mysql> -01 00:00:00",
INTERVAL "1 1:1:1" DAY_SECOND);
-> 1997- 12-30 22:58:59
mysql> SELECT DATE_ADD("1998-01-01 00: 00:00",
INTERVAL "-1 10" DAY_HOUR);
-> 1997-12-30 14:00: 00
mysql> SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);
- > 1997-12-02
mysql> SELECT EXTRACT(연도 "1999-07-02")
-> 1999
mysql> SELECT EXTRACT(연도_월 "1999-07-02 01:02:03") ;
-> 199907
mysql> SELECT EXTRACT(DAY_MINUTE FROM "1999-07-02 01:02:03")
-> 20102

간격 부분 제외 type 키워드로 예상됨), MySQL은 간격 값의 가장 왼쪽 부분을 생략했다고 가정합니다. 예를 들어
DAY_SECOND 유형을 지정하는 경우 expr 값에는 일, 시, 분, 초 구성요소가 있어야 합니다. "1:10"과 같은 값을 지정하면
MySQL은 날짜와 시간 부분이 누락되고 값이 분과 초를 나타내는 것으로 가정합니다. 즉, "1:10" DAY_SECOND는 "1:10" MINUTE_SECOND
과 동일한 방식으로 해석되는데, 이는 MySQL이 TIME 값을 시간이 아닌 경과 시간을 표현하기 위해 해석하는 방식과 모호합니다. 낮. 정말 잘못된 날짜를 사용하면
결과는 NULL입니다. MONTH, YEAR_MONTH 또는 YEAR를 증가시키고 결과 날짜가 새 달의 최대 일 수보다 큰 경우 해당 일은 새 달의 최대 일 수로 조정됩니다.

mysql> select DATE_ADD('1998-01-30', Interval 1month)
-> 1998-02-28

이전 예에서는 INTERVAL이라는 단어와 type 키워드가 대소문자를 구분하지 않습니다. .
TO_DAYS(날짜)
날짜가 주어지면 일 수(0년부터의 일 수)를 반환합니다. mysql & gt; )가 값 앞에 나타납니다.

FROM_DAYS(N)
일수 N이 주어지면 DATE 값을 반환합니다.
mysql> select FROM_DAYS(729669);
-> '1997-10-07'

TO_DAYS()는 그레고리력(1582) 이전의 값과 함께 사용할 수 없습니다.

DATE_FORMAT(date,format)
형식 문자열에 따라 날짜 값의 형식을 지정합니다. 형식 문자열에는 다음 수정자를 사용할 수 있습니다. %M 월 이름(1월...12월)
%W 주 이름(일요일...토요일)
%D 영어 접두어가 붙은 날짜(1st, 2nd, 3rd) , 등 )
%Y년, 숫자, 4자리
%y년, 숫자, 2자리
%a 약식 요일(일...토)
%d 월의 일수, 숫자(00) ...31)
%e 월의 일수, 숫자(0...31)
%m 월, 숫자(01...12)
%c 월, 숫자(1...12)
%b 약식 월 이름(Jan... Dec)
%j 1년의 일수(001…366)
%H시간(00…23)
%k시간(0…23)
%h시간(01) …12)
%I 시간(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)
%p AM 또는 PM
%w 일 수 한 주 (0=일요일… 6=토요일)
%U week(0…52), 여기서 일요일은 주의 첫 번째 날입니다.
%u week(0…52), 여기서 월요일은 주의 첫 번째 날입니다. the week
%% 텍스트 “%”.

다른 모든 문자는 해석 없이 결과에 복사됩니다.

mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y')
-> '1997년 10월 토요일'
mysql> 04 22:23:00', '%H:%i:%s');
-> '22:23:00'
mysql> DATE_FORMAT('1997-10-04 22:23:00',
'%D %y %a %d %m %b %j')
-> '277년 10월 4일 4일'
mysql> select DATE_FORMAT('1997-10-04 22:23:00' ,
'%H %k %I %r %T %S %w')
-> '22 22 10 10:23:00 PM 22:23:00 00 6'
MySQL3.23에서는 수정자 앞에 % 형식이 필요합니다. 이전 버전의 MySQL에서는 %가 선택 사항이었습니다.

TIME_FORMAT(time,format)
위의 DATE_FORMAT() 함수처럼 사용되지만 형식 문자열에는 시, 분, 초를 처리하는 형식 수정자만 포함될 수 있습니다.
다른 수정자는 NULL 값 또는 0을 생성합니다.
CURDATE()
 
CURRENT_DATE
함수가 문자열 또는 숫자 컨텍스트에서 사용되는지 여부에 따라 'YYYY-MM-DD' 또는 YYYYMMDD 형식으로 오늘 날짜 값을 반환합니다.
mysql> CURDATE();
-> '1997-12-15'
mysql> CURDATE() + 0;

CURTIME()
 
CURRENT_TIME
:MM:SS ' 또는 HHMMSS 형식을 사용하여 함수가 문자열 또는 숫자 컨텍스트에서 사용되는지 여부에 따라 현재 시간 값을 반환합니다.
mysql> 선택 CURTIME();
mysql> CURTIME() + 0;

NOW()
 
CU RR ENT_TIMESTAMP
와 함께 ' 함수가 문자열 또는 숫자 컨텍스트에서 사용되는지 여부에 따라 YYYY-MM-DD HH:MM:SS' 또는 YYYYMMDDHHMMSS 형식으로 현재 날짜와 시간을 반환합니다.
mysql> NOW();
-> NOW() + 0 선택

UNIX_TIMESTAMP()
 
UNIX_TIMESTAMP(날짜)
인수 없이 호출하면 Unix 타임스탬프('1970-01-01 00:00:00' GMT 이후의 초 수)를 반환합니다. UNIX_TIMESTAMP()가 날짜 인수와 함께 호출되면 '1970-01-01 00:00:00' GMT 이후의 초 수를 반환합니다. 날짜는 DATE 문자열, DATETIME 문자열, TIMESTAMP 또는 YYMMDD 또는 YYYYMMDD 형식의 현지 시간 숫자일 수 있습니다.
mysql> select UNIX_TIMESTAMP();
-> 882226357
mysql> MESTAMP는 TIMESTAMP 열에 사용되며 암시적 "문자열-유닉스-타임스탬프" 변환 없이 직접 허용됩니다.

FROM_UNIXTIME(unix_timestamp)
함수가 문자열
또는 숫자 컨텍스트에서 사용되는지 여부에 따라 unix_timestamp 매개변수가 나타내는 값을 'YYYY-MM-DD HH:MM:SS' 또는 YYYYMMDDHHMMSS 형식으로 반환합니다.
mysql> FROM_UNIXTIME(875996580);
-> '1997-10-04 22:23:00'
mysql> FROM_UNIXTIME(875996580) + 0;

FROM_UNIXTIME(unix_timestamp,형식)
형식 문자열에 따라 형식이 지정된 Unix 타임스탬프를 나타내는 문자열을 반환합니다. 형식에는 DATE_FORMAT() 함수에 나열된 것과 동일한 수정자가 포함될 수 있습니다.
mysql> select FROM_UNIXTIME(UNIX_TIMESTAMP(),
'%Y %D %M %h:%i:%s %x')
-> '1997년 12월 23일 03:43:30 x'

SEC_TO_TIME( 초)
초 매개변수를 시, 분, 초로 변환하여 반환합니다. 값은 함수가 문자열 또는 숫자 컨텍스트에서 사용되는지 여부에 따라 'HH:MM:SS' 또는 HHMMSS 형식으로 지정됩니다. &Mysql & GT; Select sex (2378);
- & gt; '00: 39: 38 '
Mysql & GT; Select sex (2378) + 0; 回 시간 매개변수를 반환하고 초로 변환합니다.
mysql> select TIME_TO_SEC('22:23:00');
-> 80580
mysql> select TIME_TO_SEC('00:39:38')
-> 2378


요약하자면 모든 사람에게 도움이 되기를 바랍니다.

관련 권장 사항:


날짜 함수 및 함수 캡슐화의 유연한 사용



일반적으로 사용되는 mysql 날짜 함수



MYSQL 날짜 함수 모음

위 내용은 MYSQL 날짜 함수 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.