데이터 베이스 MySQL 튜토리얼 MYSQL 날짜 함수의 완전한 컬렉션

MYSQL 날짜 함수의 완전한 컬렉션

Nov 12, 2016 am 09:51 AM

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

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

mysql> SELECT something FROM table 
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;
로그인 후 복사


DAYOFWEEK(date)
날짜의 주 인덱스를 반환합니다(1= 일요일, 2=월요일, …7=토요일). 이 인덱스 값은 ODBC 표준에 해당합니다.

mysql> select DAYOFWEEK(&#39;1998-02-03&#39;);  
-> 3
로그인 후 복사


WEEKDAY(날짜)
날짜의 주 인덱스를 반환합니다(0=월요일, 1=화요일, ...6=일요일).

mysql> select WEEKDAY(&#39;1997-10-04 22:23:00&#39;);  
-> 5  
mysql> select WEEKDAY(&#39;1997-11-05&#39;);  
-> 2
로그인 후 복사


DAYOFMONTH(날짜)
날짜가 속한 달의 일자를 반환합니다(1~31 범위).

mysql> select DAYOFMONTH(&#39;1998-02-03&#39;);  
-> 3
로그인 후 복사


DAYOFYEAR(date)
연도의 일수를 1~366 범위에서 반환합니다.

mysql> select DAYOFYEAR(&#39;1998-02-03&#39;);  
-> 34
로그인 후 복사


MONTH(날짜)
날짜의 월을 반환합니다(1부터 12까지).

mysql> select MONTH(&#39;1998-02-03&#39;);  
-> 2
로그인 후 복사


DAYNAME(날짜)
날짜의 요일 이름을 반환합니다.

mysql> select DAYNAME("1998-02-05");  
-> &#39;Thursday&#39;
로그인 후 복사


MONTHNAME(날짜)
날짜의 월 이름을 반환합니다.

mysql> select MONTHNAME("1998-02-05");  
-> &#39;February&#39;
로그인 후 복사


QUARTER(날짜)
연도의 분기를 날짜로 반환합니다(1부터 4까지).

mysql> select QUARTER(&#39;98-04-01&#39;);  
-> 2
로그인 후 복사


WEEK(날짜)

WEEK(날짜,첫 번째)
일요일이 한 주의 첫날인 곳은 단일 매개변수, 날짜의 주 번호를 반환합니다(0~52 범위). 2-인수 형식 WEEK()를 사용하면
주가 일요일 또는 월요일에 시작하는지 지정할 수 있습니다. 두 번째 매개변수가 0이면 일요일에 주가 시작되고, 두 번째 매개변수가 1이면
는 월요일에 시작됩니다.

mysql> select WEEK(&#39;1998-02-20&#39;);  
-> 7  
mysql> select WEEK(&#39;1998-02-20&#39;,0);  
-> 7  
mysql> select WEEK(&#39;1998-02-20&#39;,1);  
-> 8
로그인 후 복사


YEAR(날짜)
1000부터 9999까지의 범위에서 날짜의 연도를 반환합니다.

mysql> select YEAR(&#39;98-02-03&#39;);  
-> 1998
로그인 후 복사



HOUR(time)
0~23 범위의 시간을 반환합니다.

mysql> select HOUR(&#39;10:05:03&#39;);  
-> 10
로그인 후 복사

MINUTE(time)
0~59 범위의 분을 반환합니다.

mysql> select MINUTE(&#39;98-02-03 10:05:03&#39;);  
-> 5
로그인 후 복사


SECOND(time)
0~59 범위의 시간(초)을 반환합니다.

mysql> select SECOND(&#39;10:05:03&#39;);  
-> 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 type)
로그인 후 복사

날짜 연산을 수행하는 함수입니다. MySQL 3.22부터는 새로운 기능입니다. ADDDATE() 및 SUBDATE()는 DATE_ADD() 및 DATE_SUB()의 동의어입니다.
MySQL 3.23에서는 DATE_ADD() 및 DATE_SUB() 대신 + 및 -를 사용할 수 있습니다. (예 참조) date는 시작 날짜를 지정하는
DATETIME 또는 DATE 값이고, expr은 시작 날짜에 더하거나 뺄 간격 값을 지정하는 표현식이고, expr은 <으로 시작할 수 있는 문자열입니다. 🎜 > "-" 시작은 음수 간격을 나타냅니다. type은 표현식이 해석되는 방식을 지정하는 키워드입니다. EXTRACT(유형 FROM 날짜) 함수는
날짜로부터 "유형" 간격을 반환합니다. 다음 표는 유형 및 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" + INTERVAL 1 SECOND;  
-> 1998-01-01 00:00:00  
mysql> SELECT INTERVAL 1 DAY + "1997-12-31";  
-> 1998-01-01  
mysql> SELECT "1998-01-01" - INTERVAL 1 SECOND;  
-> 1997-12-31 23:59:59  
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",  
INTERVAL 1 SECOND);  
-> 1998-01-01 00:00:00  
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",  
INTERVAL 1 DAY);  
-> 1998-01-01 23:59:59  
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",  
INTERVAL "1:1" MINUTE_SECOND);  
-> 1998-01-01 00:01:00  
mysql> SELECT DATE_SUB("1998-01-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(YEAR FROM "1999-07-02");  
-> 1999  
mysql> SELECT EXTRACT(YEAR_MONTH FROM "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(&#39;1998-01-30&#39;, Interval 1 month);  
-> 1998-02-28
로그인 후 복사


注意,从前面的例子中词INTERVAL和type关键词不是区分大小写的。
TO_DAYS(date)
给出一个日期date,返回一个天数(从0年的天数)。

mysql> select TO_DAYS(950501);  
-> 728779
로그인 후 복사
mysql> select TO_DAYS(&#39;1997-10-07&#39;);  
-> 729669
로그인 후 복사


TO_DAYS()不打算用于使用格列高里历(1582)出现前的值。

FROM_DAYS(N)
给出一个天数N,返回一个DATE值。

mysql> select FROM_DAYS(729669);  
-> &#39;1997-10-07&#39;
로그인 후 복사


TO_DAYS()不打算用于使用格列高里历(1582)出现前的值。

DATE_FORMAT(date,format)
根据format字符串格式化date值。下列修饰符可以被用在format字符串中: %M 月名字(January……December)
%W 星期名字(Sunday……Saturday)
%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)
%Y 年, 数字, 4 位
%y 年, 数字, 2 位
%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)
%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=Sunday ……6=Saturday )
%U 星期(0……52), 这里星期天是星期的第一天
%u 星期(0……52), 这里星期一是星期的第一天
%% 一个文字“%”。

所有的其他字符不做解释被复制到结果中。

mysql> select DATE_FORMAT(&#39;1997-10-04 22:23:00&#39;, &#39;%W %M %Y&#39;);  
-> &#39;Saturday October 1997&#39; 
mysql> select DATE_FORMAT(&#39;1997-10-04 22:23:00&#39;, &#39;%H:%i:%s&#39;);  
-> &#39;22:23:00&#39; 
mysql> select DATE_FORMAT(&#39;1997-10-04 22:23:00&#39;,  
&#39;%D %y %a %d %m %b %j&#39;);  
-> &#39;4th 97 Sat 04 10 Oct 277&#39; 
mysql> select DATE_FORMAT(&#39;1997-10-04 22:23:00&#39;,  
&#39;%H %k %I %r %T %S %w&#39;);  
-> &#39;22 22 10 10:23:00 PM 22:23:00 00 6&#39;
로그인 후 복사

MySQL3.23中,在格式修饰符字符前需要%。在MySQL更早的版本中,%是可选的。

TIME_FORMAT(time,format)
这象上面的DATE_FORMAT()函数一样使用,但是format字符串只能包含处理小时、分钟和秒的那些格式修饰符。
其他修饰符产生一个NULL值或0。
CURDATE()
 
CURRENT_DATE
以'YYYY-MM-DD'或YYYYMMDD格式返回今天日期值,取决于函数是在一个字符串还是数字上下文被使用。

mysql> select CURDATE();  
-> &#39;1997-12-15&#39; 
mysql> select CURDATE() + 0;  
-> 19971215
로그인 후 복사


CURTIME()
 
CURRENT_TIME
以'HH:MM:SS'或HHMMSS格式返回当前时间值,取决于函数是在一个字符串还是在数字的上下文被使用。

mysql> select CURTIME();  
-> &#39;23:50:26&#39; 
mysql> select CURTIME() + 0;  
-> 235026
로그인 후 복사


NOW()
 
SYSDATE()
 
CURRENT_TIMESTAMP
以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回当前的日期和时间,取决于函数是在一个字符串还是在数字的
上下文被使用。

mysql> select NOW();  
-> &#39;1997-12-15 23:50:26&#39; 
mysql> select NOW() + 0;  
-> 19971215235026
로그인 후 복사


UNIX_TIMESTAMP()
 
UNIX_TIMESTAMP(date)
如果没有参数调用,返回一个Unix时间戳记(从'1970-01-01 00:00:00'GMT开始的秒数)。如果UNIX_TIMESTAMP()用一
个date参数被调用,它返回从'1970-01-01 00:00:00' GMT开始的秒数值。date可以是一个DATE字符串、一个DATETIME
字符串、一个TIMESTAMP或以YYMMDD或YYYYMMDD格式的本地时间的一个数字。

mysql> select UNIX_TIMESTAMP();  
-> 882226357  
mysql> select UNIX_TIMESTAMP(&#39;1997-10-04 22:23:00&#39;);  
-> 875996580
로그인 후 복사


当UNIX_TIMESTAMP被用于一个TIMESTAMP列,函数将直接接受值,没有隐含的“string-to-unix-timestamp”变换。

FROM_UNIXTIME(unix_timestamp)
以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回unix_timestamp参数所表示的值,取决于函数是在一个字符串
还是或数字上下文中被使用。

mysql> select FROM_UNIXTIME(875996580);  
-> &#39;1997-10-04 22:23:00&#39; 
mysql> select FROM_UNIXTIME(875996580) + 0;  
-> 19971004222300
로그인 후 복사


FROM_UNIXTIME(unix_timestamp,format)
返回表示 Unix 时间标记的一个字符串,根据format字符串格式化。format可以包含与DATE_FORMAT()函数列出的条
目同样的修饰符。

mysql> select FROM_UNIXTIME(UNIX_TIMESTAMP(),  
&#39;%Y %D %M %h:%i:%s %x&#39;);  
-> &#39;1997 23rd December 03:43:30 x&#39;
로그인 후 복사


SEC_TO_TIME(seconds)
返回seconds参数,变换成小时、分钟和秒,值以'HH:MM:SS'或HHMMSS格式化,取决于函数是在一个字符串还是在数字
上下文中被使用。

mysql> select SEC_TO_TIME(2378);  
-> &#39;00:39:38&#39; 
mysql> select SEC_TO_TIME(2378) + 0;  
-> 3938
로그인 후 복사


TIME_TO_SEC(time)
返回time参数,转换成秒。

mysql> select TIME_TO_SEC(&#39;22:23:00&#39;);  
-> 80580  
mysql> select TIME_TO_SEC(&#39;00:39:38&#39;);  
-> 2378
로그인 후 복사


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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까? Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까? Mar 19, 2025 pm 03:51 PM

이 기사는 MySQL의 Alter Table 문을 사용하여 열 추가/드롭 테이블/열 변경 및 열 데이터 유형 변경을 포함하여 테이블을 수정하는 것에 대해 설명합니다.

MySQL 연결에 대한 SSL/TLS 암호화를 어떻게 구성합니까? MySQL 연결에 대한 SSL/TLS 암호화를 어떻게 구성합니까? Mar 18, 2025 pm 12:01 PM

기사는 인증서 생성 및 확인을 포함하여 MySQL에 대한 SSL/TLS 암호화 구성에 대해 설명합니다. 주요 문제는 자체 서명 인증서의 보안 영향을 사용하는 것입니다. [문자 수 : 159]

MySQL에서 큰 데이터 세트를 어떻게 처리합니까? MySQL에서 큰 데이터 세트를 어떻게 처리합니까? Mar 21, 2025 pm 12:15 PM

기사는 MySQL에서 파티셔닝, 샤딩, 인덱싱 및 쿼리 최적화를 포함하여 대규모 데이터 세트를 처리하기위한 전략에 대해 설명합니다.

인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)? 인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)? Mar 21, 2025 pm 06:28 PM

기사는 MySQL Workbench 및 Phpmyadmin과 같은 인기있는 MySQL GUI 도구에 대해 논의하여 초보자 및 고급 사용자를위한 기능과 적합성을 비교합니다. [159 자].

드롭 테이블 문을 사용하여 MySQL에서 테이블을 어떻게 드롭합니까? 드롭 테이블 문을 사용하여 MySQL에서 테이블을 어떻게 드롭합니까? Mar 19, 2025 pm 03:52 PM

이 기사에서는 Drop Table 문을 사용하여 MySQL에서 테이블을 떨어 뜨리는 것에 대해 설명하여 예방 조치와 위험을 강조합니다. 백업 없이는 행동이 돌이킬 수 없으며 복구 방법 및 잠재적 생산 환경 위험을 상세하게합니다.

외국 키를 사용하여 관계를 어떻게 표현합니까? 외국 키를 사용하여 관계를 어떻게 표현합니까? Mar 19, 2025 pm 03:48 PM

기사는 외국 열쇠를 사용하여 데이터베이스의 관계를 나타내고 모범 사례, 데이터 무결성 및 피할 수있는 일반적인 함정에 중점을 둡니다.

JSON 열에서 인덱스를 어떻게 생성합니까? JSON 열에서 인덱스를 어떻게 생성합니까? Mar 21, 2025 pm 12:13 PM

이 기사에서는 PostgreSQL, MySQL 및 MongoDB와 같은 다양한 데이터베이스에서 JSON 열에서 인덱스를 작성하여 쿼리 성능을 향상시킵니다. 특정 JSON 경로를 인덱싱하는 구문 및 이점을 설명하고 지원되는 데이터베이스 시스템을 나열합니다.

일반적인 취약점 (SQL 주입, 무차별 적 공격)에 대해 MySQL을 어떻게 보호합니까? 일반적인 취약점 (SQL 주입, 무차별 적 공격)에 대해 MySQL을 어떻게 보호합니까? Mar 18, 2025 pm 12:00 PM

기사는 준비된 명령문, 입력 검증 및 강력한 암호 정책을 사용하여 SQL 주입 및 무차별 적 공격에 대한 MySQL 보안에 대해 논의합니다 (159 자)

See all articles