> 데이터 베이스 > MySQL 튜토리얼 > MySQL 날짜 함수에 대한 자세한 설명

MySQL 날짜 함수에 대한 자세한 설명

小云云
풀어 주다: 2018-03-03 10:48:35
원래의
1870명이 탐색했습니다.

Kaiyuan의 무료 관계형 데이터베이스인 Mysql은 매우 큰 사용자 기반을 보유하고 있습니다. 이 기사에서는 MYSQL에서 일반적으로 사용되는 날짜 함수와 날짜 변환 형식 함수를 나열합니다.

1, DAYOFWEEK(날짜)


SELECT DAYOFWEEK(‘2016-01-16') 
SELECT DAYOFWEEK(‘2016-01-16 00:00:00')
로그인 후 복사


-> 7 (表示,记住:星期天=1,星期一=2, ... 星期六=7)
로그인 후 복사

2, WEEKDAY(날짜)


SELECT WEEKDAY(‘2016-01-16') 
SELECT WEEKDAY(‘2016-01-16 00:00:00')
로그인 후 복사


-> 5 (表示返回date是在一周中的序号,西方日历中通常一周的开始是星期天,并且以0开始计数,所以,记住:0=星期一,1=星期二, ... 5=星期六)
로그인 후 복사
3、DAYOFMONTH(날짜)

ㅋㅋㅋ

SELECT DAYOFMONTH(‘2016-01-16') 
SELECT DAYOFMONTH(‘2016-01-16 00:00:00')
로그인 후 복사

-> 16 (表示返回date是当月的第几天,1号就返回1,... ,31号就返回31)
로그인 후 복사

6、DAYNAME (날짜)

SELECT DAYOFYEAR(‘2016-03-31') 
SELECT DAYOFYEAR(‘2016-03-31 00:00:00')
로그인 후 복사

-> 91 (表示返回date是当年的第几天,01.01返回1,... ,12.31就返回365)
로그인 후 복사

7、MONTHNAME(날짜)

SELECT MONTH(‘2016-01-16') 
SELECT MONTH(‘2016-01-16 00:00:00')
로그인 후 복사

-> 1 (表示返回date是当年的第几月,1月就返回1,... ,12月就返回12)
로그인 후 복사

8、QUARTER(날짜)

SELECT DAYNAME(‘2016-01-16') 
SELECT DAYNAME(‘2016-01-16 00:00:00')
로그인 후 복사

-> Saturday (表示返回date是周几的英文全称名字)
로그인 후 복사

9 , WEEK(날짜, 인덱스)

SELECT MONTHNAME(‘2016-01-16') 
SELECT MONTHNAME(‘2016-01-16 00:00:00')
로그인 후 복사

-> January (表示返回date的是当年第几月的英文名字)
로그인 후 복사

10, YEAR(날짜)

SELECT QUARTER(‘2016-01-16') 
SELECT QUARTER(‘2016-01-16 00:00:00')
로그인 후 복사

-> 1 (表示返回date的是当年的第几个季度,返回1,2,3,4)
로그인 후 복사

숫자 , 그런 다음 자동으로 완료 메커니즘은 기본 시간 1970.01.01, >= 70 완료 19, < 70 완료 20

11, HOUR(time)


SELECT WEEK(‘2016-01-03&#39;) 
SELECT WEEK(‘2016-01-03&#39;, 0) 
SELECT WEEK(‘2016-01-03&#39;, 1)
로그인 후 복사


-> 1 (该函数返回date在一年当中的第几周,date(01.03)是周日,默认是以为周日作为一周的第一天,函数在此处返回1可以有两种理解:1、第一周返回0,第二周返回1,.... ,2、以当年的完整周开始计数,第一周返回1,第二周返回2,... ,最后一周返回53)
-> 1 (week()默认index就是0. 所以结果同上)
-> 0 (当index为1时,表示一周的第一天是周一,所以,4号周一才是第二周的开始日)
로그인 후 복사
을 기준으로 합니다.

날짜 또는 시간의 시 값을 반환합니다. 값 범위(0-23)

12, MINUTE(time)



SELECT YEAR(‘70-01-16&#39;) 
SELECT YEAR(‘2070-01-16&#39;) 
SELECT YEAR(‘69-01-16 00:00:00&#39;)
로그인 후 복사

-> 1970 (表示返回date的4位数年份)
-> 2070 
-> 1969
로그인 후 복사

시간의 분 값을 반환합니다. 값 범위(0 -59 )

13.SECOND(시간)



SELECT HOUR(‘11:22:33&#39;) 
SELECT HOUR(‘2016-01-16 11:22:33&#39;)
로그인 후 복사

-> 11
-> 11
로그인 후 복사

시간의 분 값을 반환합니다. 값 범위(0-59)

14.


SELECT MINUTE(‘11:22:33&#39;) 
SELECT MINUTE(‘2016-01-16 11:44:33&#39;)
로그인 후 복사

-> 22
-> 44
로그인 후 복사

월의 형식은 yyMM 또는 yyyyMM입니다. 반환된 결과는 음수 값을 전달할 수 있습니다

15. (monthStart , MonthEnd)



SELECT SECOND(‘11:22:33&#39;) 
SELECT SECOND(‘2016-01-16 11:44:22&#39;)
로그인 후 복사

-> 33
-> 22
로그인 후 복사

이 함수는 MonthStart - MonthEnd

16, DATE_ADD(날짜, INTERVAL 숫자 유형) 사이의 개월 수를 반환하며 ADDDATE()


와 동일합니다.


SELECT PERIOD_ADD(1601,2) 
SELECT PERIOD_ADD(191602,3) 
SELECT PERIOD_ADD(191602,-3)
로그인 후 복사


-> 201603
-> 191605
-> 191511
로그인 후 복사

DATE_ADD() 및 ADDDATE()는 날짜 연산의 결과를 반환합니다.

1 날짜 형식은 "15-12-31"일 수 있으며 "15-12-31 23: 59:59" 또는 "2015-12-31 23:59:59"입니다. 매개변수 날짜가 날짜 형식인 경우 날짜 형식의 결과가 반환됩니다. 매개변수 날짜가 날짜/시간 형식인 경우 날짜/시간 형식의 결과가 반환됩니다.

2. 유형 형식:

SECOND 초 SECONDS
  MINUTE MinutesMINUTES

  HOUR 시간 HOURS

  DAY DAYS
  MONTH   월 MONTHS  

  YEAR   YEARS  

    MINUTE_SECOND   분 초 및 초 "MINUTES:SECONDS"             HOUR_MINUTE   시 및 분 "HOURS:MINUT ES "

DAY_HOUR 일 및 시"DAYS HOURS"

YEAR_MONTH 연도 및 월 "YEARS-MONTHS" HOUR_SECOND 시, 분, "HOURS:MINUTES:SECONDS" DAY_MINUTE 일, 시, 분 "DAYS HOURS:MINUTES"

DAY_SECOND 일, 시, 분, 초 "DAYS HOURS:MINUTES: SECONDS"


3. 또한, 함수를 사용하지 않는 경우 "+" 및 "-" 연산자 사용을 고려할 수도 있습니다.


SELECT PERIOD_DIFF(1601,1603) 
SELECT PERIOD_DIFF(191602,191607) 
SELECT PERIOD_DIFF(1916-02,1916-07) 
SELECT PERIOD_DIFF(1602,9002)
로그인 후 복사

반환 결과:



-> -2
-> -5
-> 5
-> 312
로그인 후 복사


17. DATE_SUB(날짜, INTERVAL 숫자 유형), SUBDATE()와 동일


사용법은 DATE_ADD() 및 ADDDATE()와 유사합니다. 덧셈과 뺄셈을 위한 것입니다. 구체적인 사용법은 DATE_ADD() 및 ADDDATE() 를 참조하십시오.



18, TO_DAYS(날짜)


SELECT DATE_ADD(“2015-12-31 23:59:59”,INTERVAL 1 SECOND) 
SELECT DATE_ADD(“2015-12-31 23:59:59”,INTERVAL 1 DAY) 
SELECT DATE_ADD(“2015-12-31 23:59:59”,INTERVAL “1:1” MINUTE_SECOND) 
SELECT DATE_ADD(“2016-01-01 00:00:00”,INTERVAL “-1 10” DAY_HOUR)
로그인 후 복사

-> 2016-01-01 00:00:00
-> 2016-01-01 23:59:59
-> 2016-01-01 00:01:00
-> 2015-12-30 14:00:00
로그인 후 복사

AD 0부터 날짜

19, FROM_DAYS(날짜)


까지의 총 일수를 반환합니다.

SELECT “2016-01-01” - INTERVAL 1 SECOND 
SELECT “2016-01-01” - INTERVAL 1 DAY 
SELECT ‘2016-12-31 23:59:59&#39; + INTERVAL 1 SECOND 
SELECT ‘2016-12-31 23:59:59&#39; + INTERVAL “1:1” MINUTE_SECOND
로그인 후 복사

-> 2015-12-31 23:59:59
-> 2015-12-31
-> 2017-01-01 00:00:00
-> 2017-01-01 00:01:00
로그인 후 복사

AD 0

20 이후의 일수를 DATE 값으로 반환합니다. DATE_FORMAT(date, format): 매개변수에 따라 날짜 형식을 지정합니다.


SELECT TO_DAYS(‘2016-01-16&#39;) 
SELECT TO_DAYS(‘20160116&#39;) 
SELECT TO_DAYS(‘160116&#39;)
로그인 후 복사


-> 736344
-> 736344
-> 736344
로그인 후 복사

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), 这里星期一是星期的第一天
%% 字符% )

TIME_FORMAT(time,format):
具体用法和DATE_FORMAT()类似,但TIME_FORMAT只处理小时、分钟和秒(其余符号产生一个NULL值或0)

21、获取系统当前日期


SELECT CURDATE() 
SELECT CURRENT_DATE()
로그인 후 복사


-> 2016-01-16
-> 2016-01-16
로그인 후 복사

22、获取系统当前时间


SELECT CURTIME() 
SELECT CURRENT_TIME()
로그인 후 복사


-> 17:44:22
-> 17:44:22
로그인 후 복사

23、NOW(),SYSDATE(),CURRENT_TIMESTAMP(),LOCALTIME():获取系统当前日期和时间


SELECT NOW() 
SELECT SYSDATE() 
SELECT CURRENT_TIMESTAMP() 
SELECT CURRENT_TIMESTAMP 
SELECT LOCALTIME() 
SELECT LOCALTIME
로그인 후 복사


-> 2016-01-16 17:44:41
-> 2016-01-16 17:44:41
-> 2016-01-16 17:44:41
-> 2016-01-16 17:44:41
-> 2016-01-16 17:44:41
-> 2016-01-16 17:44:41
로그인 후 복사

24、UNIX_TIMESTAMP(date):获取时间戳


SELECT UNIX_TIMESTAMP() 
SELECT UNIX_TIMESTAMP(‘2016-01-16&#39;) 
SELECT UNIX_TIMESTAMP(‘2016-01-16 23:59:59&#39;)
로그인 후 복사


-> 1452937627
-> 1452873600
-> 1452959999
로그인 후 복사

25、FROM_UNIXTIME(unix_timestamp,format):把时间戳转化成日期时间


SELECT FROM_UNIXTIME(1452959999) 
SELECT FROM_UNIXTIME(1452959999,&#39;%Y-%m-%d %H:%i:%s&#39;)
로그인 후 복사


-> 2016-01-16 23:59:59
-> 2016-01-16 23:59:59
로그인 후 복사

26、SEC_TO_TIME(seconds):把秒数转化成时间


SELECT SEC_TO_TIME(2378)
로그인 후 복사


-> 00:39:38
로그인 후 복사

27、TIME_TO_SEC(time):把时间转化成秒数


SELECT TIME_TO_SEC(‘22:23:00&#39;)
로그인 후 복사


-> 2378
로그인 후 복사

28、ADDTIME(time,times):把times加到time上


SELECT ADDTIME(“2015-12-31 23:59:59”,&#39;01:01:01&#39;)
로그인 후 복사


-> 2016-01-01 01:01:00
로그인 후 복사

29、CONVERT_TZ(date,from_tz ,to_tz ):转换时区


SELECT CONVERT_TZ(‘2004-01-01 12:00:00&#39;,&#39;+00:00&#39;,&#39;+10:00&#39;)
로그인 후 복사


-> 2004-01-01 22:00:00
로그인 후 복사

30、STR_TO_DATE(date,format ):将字符串转成format格式的日期时间


SELECT STR_TO_DATE(‘2015-01-01&#39;, ‘%Y-%m-%d&#39;)
로그인 후 복사


-> 2015-01-01
로그인 후 복사

31、LAST_DAY(date ):获取date当月最后一天的日期


SELECT LAST_DAY(SYSDATE()) 
SELECT LAST_DAY(‘2015-02-02&#39;) 
SELECT LAST_DAY(‘2015-02-02 00:22:33&#39;)
로그인 후 복사


-> 2016-01-31
-> 2015-02-28
-> 2015-02-28
로그인 후 복사

32、MAKEDATE(year ,dayofyear ):根据参数(年份,第多少天)获取日期


SELECT MAKEDATE(2015 ,32)
로그인 후 복사


-> 2015-02-01
로그인 후 복사

33、 MAKETIME(hour ,minute ,second ):根据参数(时,分,秒)获取时间


SELECT MAKETIME(12 ,23 ,34 )
로그인 후 복사


-> 12:23:34
로그인 후 복사

34、YEARWEEK(date):获取日期的年和周


SELECT YEARWEEK(SYSDATE()) 
SELECT YEARWEEK(‘2015-01-10&#39;) 
SELECT YEARWEEK(‘2015-01-10&#39;,1)
로그인 후 복사


-> 201602
-> 201501
-> 201502
로그인 후 복사

35、WEEKOFYEAR(date):获取当日是当年的第几周


SELECT WEEKOFYEAR(SYSDATE()) 
SELECT WEEKOFYEAR(‘2015-01-10&#39;)
로그인 후 복사


-> 2
-> 2
로그인 후 복사

-> 2
-> 2

mysql中常用的几种时间格式转换函数整理如下

1,from_unixtime(timestamp, format):

timestamp为int型时间,如14290450779;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 주(0... ...52), 여기서 일요일은 주의 첫 번째 날입니다.
%u 주(0...52), 여기 월요일은 한 주의 첫날입니다

2, unix_timestamp(날짜):

함수는 from_unixtime()과 완전히 동일합니다. 반대로 전자는 유닉스 타임스탬프를 읽을 수 있는 시간으로 변환하고, unix_timestamp()는 읽을 수 있는 시간을 unix 타임스탬프로 변환합니다. 이는 datetime에 저장된 시간을 정렬할 때 사용됩니다. 예를 들어 unix_timestamp('2009-08-06 10:10:40'), 1249524739를 얻습니다.

unix_timestamp()가 매개변수를 전달하지 않으면 now() 함수가 호출되어 자동으로 현재 시간을 가져옵니다.

3, date_format(date, format):

date_format()은 날짜 또는 날짜/시간 유형 값을 임의의 시간 형식으로 변환합니다. 예를 들어, 일반적인 애플리케이션 시나리오에서 테이블에는 업데이트 시간을 포함하고 날짜/시간 유형을 저장하는 필드가 있지만 프런트 엔드에 표시되는 경우 연도, 월, 일(xxxx-xx-)만 표시하면 됩니다. xx) 이 경우 결과 집합에서 프로그램 루프 처리를 사용하지 않고 date_format(date,'% Y-%m-%d ') 처리를 사용할 수 있습니다.

관련 권장사항:

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

mysql 날짜 및 시간 유형

php mysql 날짜 연산 함수_PHP 튜토리얼


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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿