mysql date format timestamp functions with examples
이 포괄적 인 자습서는 현재 날짜, 날짜 추가, 시간 추가 등과 같은 MySQL 날짜 형식 및 타임 스탬프 함수의 구문과 예제를 제공합니다.
이 튜토리얼에서는 MySQL 날짜 및 시간 데이터 유형과 MySQL에서 날짜 및 시간 값을 조작하기 위해 제공하는 다양한 기능에 대해 자세히 알아 봅니다.
MySQL은 날짜 추가 및 빼기, 두 날짜 간의 차이 찾기, 지정된 날짜-시간 값의 특정 부분 추출과 같은 다양한 작업을 수행 할 수있는 훌륭한 기능 / 유틸리티 세트를 제공합니다.
학습 내용 :
MySQL 날짜 형식 및 시간 함수
이 함수는 MySQL 테이블에서 날짜 시간 열 값에 대한 작업이 필요할 때마다 매우 중요합니다.
전제 조건
자습서에 사용 된 예제를 실행하려면 MySQL 설치의 로컬 설정이 필요합니다.
= >> MySQL을 설치하려면 튜토리얼을 참조하십시오. 여기.
날짜 및 시간 데이터 유형
데이터 유형에는 YEAR, DATE, TIME, DATETIME 및 TIMESTAMP가 있습니다.
MySQL은 5 가지 데이터 유형 (예 : YEAR, DATE, TIME, DATETIME 및 TIMESTAMP)을 사용하여 날짜 및 시간 값을 저장합니다. MySQL에서 제공하는 DATE FORMATS 및 DATETIME FUNCTIONS에 대해 자세히 알아보기 전에 아래 표에서 이러한 내용을 간략하게 이해해 보겠습니다.
유형 | 통사론 | 범위 | 기억 | 체재 |
---|---|---|---|---|
% H | 시간-00-23 | |||
년 | 연도 부분 만 저장하는 데 사용 colName 년 | 1901 ~ 2155 | 하나 | ‘YYYY’ |
데이트 | DATE 부분 만 저장하는 데 사용됩니다. colName 데이트 | '1000-01-01'~ '9999-12-31' | 삼 | ‘YYYY-MM-DD’ |
시각 | TIME 부분 만 저장하는 데 사용됩니다. colName 시각 colName 시간 (n) n-> 정확도 또는 분수 성분 | ‘00 : 00 : 00’~ ‘23 : 59 : 59’ | 3 + fractionalStorage | ‘hh : mm : ss. (분수)’ |
날짜 시간 | DATE 및 TIME을 모두 저장하는 데 사용됩니다. colName 날짜 시간 colName DATETIME (n) n-> 정확도 또는 분수 성분 | '1000-01-01 00 : 00 : 00.000000'~ '9999-12-31 23 : 59 : 59.999999' | 5 + fractionalStorage | ‘YYYY-MM-DD hh : mm : ss. (분수)’ |
타임 스탬프 | DATE 및 TIME을 모두 저장하는 데 사용됩니다. colName 타임 스탬프 colName 타임 스탬프 (n) n-> 정확도 또는 분수 성분 | '1970-01-01 00:00:01'UTC ~ '2038-01-19 03:14:07'UTC. | 4 + fractionalStorage | ‘YYYY-MM-DD hh : mm : ss. (분수)’ |
이제 우리는 부분 저장을위한 메모리 요구 사항을 이해할 것입니다. 지정된 분수 구성 요소에 따라 TIME, DATETIME 및 TIMESTAMP 데이터 유형의 경우 사용되는 메모리가 다릅니다.
소수 자릿수 | 메모리 (바이트) |
---|---|
0 | 0 |
1-2 | 하나 |
3-4 | 두 |
5-6 | 삼 |
위의 표를 사용하여 예를 들면 열 유형이 – TIME (5) 인 경우.
그러면 사용 된 총 메모리는 => TIME 데이터 유형에 사용 된 메모리 + 5 분수 구성 요소에 사용 된 메모리 => 3 + 3 => 6 바이트입니다.
이러한 모든 데이터 유형을 단일 테이블의 일부로 설명하고 각 유형에 할당 된 값을 살펴 보겠습니다.
CREATE TABLE datetime_illustration(year_col YEAR, date_col DATE, time_col TIME, time_col_fractional TIME(2), datetime_col DATETIME, datetime_col_fractional DATETIME(6), timestamp_col TIMESTAMP, timestamp_col_fractional TIMESTAMP(6))
현재 타임 스탬프 인‘now ()’함수를 사용하여 테이블에 단일 행을 삽입합니다. 이 함수를 사용하면 열의 데이터 유형에 따라 현재 날짜 및 시간에서 필요한 부분 만 트리밍 / 삽입하는 방법에 유의하십시오.
insert into datetime_illustration values (now(), now(), now(), now(), now(), now(), now(), now()); select * from datetime_illustration
이제 여러 열의 데이터를 분석하기 위해 표의 내용을 살펴 보겠습니다.
select * from datetime_illustration
따라서 위의 데이터를 다음과 같이 요약합니다.
- 모든 열에는 데이터 유형별로 할당 된 값이 있습니다. 예를 들면 첫 번째 열인 YEAR의 경우 현재 타임 스탬프 인‘now ()’함수를 사용하여 삽입했지만 삽입 된 값은 현재 날짜 시간의 연도 부분입니다 (예 : 2020).
- now () 함수는 현재 날짜 시간을 다음 형식으로 반환합니다. dd : mm : yyyy hh : mm : ss
- 열 이름에서 '_fractional'이있는 분수 부분을 확인하십시오. 지정된 소수 자릿수에 따라 소수 값이 캡처되고 표시됩니다.
DATETIME 및 TIMESTAMP 필드의 자동 초기화 및 업데이트
실제 시나리오에서-대부분의 경우 DATETIME 초기화 및 업데이트는 자동으로 구성됩니다.
이것이 의미하는 것은 일반적으로 테이블에는 다음과 같은 2 개의 열이 있습니다. created_time 과 updated_time .
created_time 컬럼은 행이 삽입 될 때마다 현재 시스템 시간의 값을 취하도록 구성되며, 마찬가지로 updated_time은 테이블의 특정 행에 대한 업데이트가있을 때마다 현재 시스템 시간을 취하도록 구성됩니다.
점에 유의하시기 바랍니다, 행 삽입 시간 동안 created_time 및 updated_time은 동일한 값을 갖습니다. 행에 대한 모든 후속 업데이트는 현재 시스템 시간으로 updated_time 필드를 업데이트합니다.
자동 초기화 및 업데이트 기능이있는 테이블을 만들어 보겠습니다.
다음과 같은 테이블을 생성합니다. stock_price 주식 기호, 가격 및 날짜 / 시간 필드 (created_on 및 updated_on)가 있습니다.
create table stock_price(symbol varchar(100), price decimal(10,2), created_on datetime default current_timestamp, updated_on datetime default current_timestamp on update current_timestamp)
테이블에 일부 데이터를 삽입하십시오.
insert into stock_price(symbol,price) values('AMZN','3000.10');
결과를 확인합니다 (심볼 및 가격에 대한 값을 방금 입력했습니다. datetime 열, created_on 및 updated_on은 자동으로 초기화되어야 함)
select * from stock_price
swf 파일이란 무엇이며 어떻게 열 수 있습니까?
아래와 같이‘AMZN’주식의 주가를 업데이트 해보십시오.
update stock_price set price='3005.15' where symbol='AMZN'
이제 테이블에 대한 데이터를 다시 가져옵니다. stock_price에 대한 업데이트가 발생하면 updated_time 값이 변경되는 것을 볼 수 있습니다.
select * from stock_price
이제 위의 예에서 updated_on 열의 값이 업데이트 타임 스탬프로 업데이트되었음을 알 수 있습니다.
MySQL 날짜 및 시간 함수
MySQL은 날짜 및 시간 관련 데이터 유형이있는 열에 대해 다양한 함수를 제공합니다.
이러한 기능은 일반적으로 다음과 같은 용도로 사용됩니다.
- 데이터를 쿼리하는 동안 저장된 날짜를 필요한 형식으로 변환합니다.
- 열의 현재 값에 간격을 추가하거나 현재 설정된 값에서 시간을 빼는 등 기존 날짜 시간 필드를 조작합니다.
- 저장된 값에서 특정 정보 추출, 예를 들면 저장된 값에서 '날짜'부분 만 추출하고 다음과 같은 추가 필터링 / 작업 수행 그룹화 날짜 등
이 섹션에서는 가장 일반적으로 사용되는 날짜 및 시간 함수에 대한 예제를 볼 수 있습니다.
>> 참조 여기 이러한 기능의 전체 목록은
# 1) 현재 날짜 및 시간 얻기
MySQL은 날짜 및 시간의 현재 값을 가져 오기 위해 많은 편리한 함수 / 상수 값을 제공하며 일반적으로 datetime 열에 값을 저장하거나 현재 날짜 및 시간 값에서 특정 범위에 대해 검색하는 동안 사용됩니다.
a) 큐 데이트 ()
이 함수는 현재 날짜를 가져옵니다. curdate () 함수의 다른 동의어는 다음과 같습니다. – CURRENT_DATE, CURRENT_DATE (), CURRENT_DATE ( fractionalDigits )
이 기능의 예는 다음과 같습니다.
select curdate(), CURRENT_DATE(), CURRENT_DATE
b) 현재 시간 ()
이 함수는 현재 시간을 가져옵니다. 분수 부분 (최대 6 자리)을 얻으려면 괄호 안에있는 분수를 curtime (3)으로 지정하십시오. 그러면 소수점 세 자리까지 시스템 시간의 현재 값을 가져옵니다.
curtime () 함수의 다른 동의어는 다음과 같습니다. CURRENT_TIME, CURRENT_TIME (), CURRENT_TIME ( fractionalDigits )
select curtime(), CURRENT_TIME(), CURRENT_TIME, curtime(6), CURRENT_TIME(6)
c) 지금 ()
이 함수는 현재 타임 스탬프를 가져옵니다. 괄호 안에 분수 부분을 지정하고, 예를 들면 now (4)는 현재 타임 스탬프를 소수점 4 자리까지 가져옵니다.
now () 함수의 다른 동의어는 다음과 같습니다. CURRENT_TIMESTAMP, CURRENT_TIMESTAMP (), CURRENT_TIMESTAMP ( fractionalDigits )
select now(), CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP, now(6), CURRENT_TIMESTAMP(6)
# 2) 날짜 더하기 및 빼기
MySQL은 열에 저장된 기존 값에 날짜 및 시간 값을 더하거나 빼는 기능을 제공하거나 데이터를 쿼리하는 동안 사용할 수 있습니다. 예제를 통해 기능을 이해할 수 있습니다.
뺄셈에 날짜-시간 더하기를 수행하기 위해 아래 표를 사용합니다.
create table datetime_calc(datecol DATE, timecol TIME, datetimecol DATETIME(6));
아래와 같이 INSERT 문을 사용하여 위 테이블에 일부 항목을 삽입합니다.
insert into datetime_calc values(now(), now(), now(6)); insert into datetime_calc values(now(), now(), now(6));
위의 테이블을 쿼리하고 저장된 데이터를 살펴 보겠습니다.
테이블의 열을 업데이트하는 것 외에도 특정 날짜 / 시간 또는 날짜 / 시간 값에 적용하여 SELECT 문을 사용하여 날짜 / 시간 조작을 직접 수행 할 수 있습니다.
a) ADDDATE ()
이름에서 알 수 있듯이이 함수는 DATE, DATETIME 또는 TIMESTAMP 유형일 수있는 기존 날짜 값에 날짜를 추가하는 데 사용됩니다.
통사론:
ADDDATE(inputTimeValue/fieldName, noOfDays)
ADDDATE는 DAYS, WEEK, HOUR, MINUTE, SECOND 등이 될 수있는 Interval 값으로도 호출 할 수 있습니다.
이 경우 구문은 다음과 같이 변경됩니다.
ADDDATE(inputTimeValue/fieldName, Interval intervalUnit)
이를 더 잘 이해하기 위해 몇 가지 예를 살펴 보겠습니다.
SELECT ADDDATE('2020-08-15', 31); // output '2020-09-15'
정수 값이 두 번째 인수로 제공되면 주어진 날짜에 더해지는 일 수로 처리됩니다.
Interval as – MONTH, HOUR 및 WEEK를 사용한 몇 가지 추가 예는 다음과 같습니다.
SELECT ADDDATE('2020-01-02', INTERVAL 1 MONTH); //output 2020-02-02
SELECT ADDDATE('2020-01-02 12:11:11', INTERVAL 5 HOUR); //output 2020-01-02 17:11:11
SELECT ADDDATE('2020-01-02 12:11:11', INTERVAL 1 WEEK); //output 2020-01-09 12:11:11
간격의 다른 예는 MINUTE, SECOND, QUARTER 등이 될 수 있습니다.
기존 테이블의 열을 업데이트하려면 예를 들면 테이블의 경우 'datecol'값을 업데이트하고 열의 모든 날짜에 10 일을 추가하려면 'datetime_calc'를 생성했습니다. 다음과 같이 쿼리를 사용할 수 있습니다.
update datetime_calc set datecol=ADDDATE(datecol, 30);
이제 SELECT *를 사용하여 datetime_calc 테이블의 모든 데이터를 표시합니다.
SELECT * FROM datetime_calc
위 출력에서 datecol 열의 값이 기존 값에 30 일을 더한 후 2020 년 8 월 25 일에서 2020 년 9 월 24 일로 업데이트되었음을 알 수 있습니다.
b) ADDTIME ()
ADD_DATE와 유사하게 ADD_TIME 함수를 사용하여 기존 (DATETIME, TIME 또는 TIMESTAMP 열 / 필드 또는 주어진 입력)에 시간 구성 요소를 추가 할 수 있습니다.
통사론:
ADDTIME(inputTimeValue/fieldName, ‘hh:mm:ss’)
예:
SELECT ADDTIME('2020-01-02 12:11:11', '01:10:00'); // output 2020-01-02 13:21:11
해당 열의 모든 값에 5 시간을 더하여 테이블의 datetime 열을 업데이트하는 예를 살펴 보겠습니다. 다음은 샘플 쿼리입니다.
update datetime_calc set datetimecol=ADDTIME(datetimecol, '05:00:00')
이전 테이블 출력 :
// output '2020-08-25 05:53:37.851379' '2020-08-25 05:53:39.711515'
다음 이후의 테이블 출력 :
// output '2020-08-25 10:53:37.851379' '2020-08-25 10:53:39.711515'
c) SUBDATE ()
SUBDATE는 ADDDATE와 정확히 유사하지만 유일한 차이점은 SUBDATE가 주어진 간격 / 아니요를 뺀다는 것입니다. 열 / 필드 값에서 일 수.
통사론:
SUBDATE(inputTimeValue/fieldName, noOfDays)
SUBDATE () 함수를 설명하기 위해 몇 가지 예를 살펴 보겠습니다.
SELECT SUBDATE('2020-08-15', 31); // output 2020-07-15
아래의 예는 시간 / 일 주 등에 언급 된 간격을 빼는 것을 보여줍니다.
SELECT SUBDATE('2020-01-02 12:11:11', INTERVAL 1 WEEK); // output 2019-12-26 12:11:11 SELECT SUBDATE('2020-01-02 12:11:11', INTERVAL 12 HOUR); // output 2020-01-02 00:11:11
d) 서브 타임 ()
SUBTIME은 주어진 datetime 또는 시간 필드 값에서‘hh : mm : ss’에 지정된 시간 값을 뺍니다.
통사론:
SUBTIME(inputTimeValue/fieldName, ‘hh:mm:ss’)
SUBTIME () 함수의 예 :
SELECT SUBTIME('2020-01-02 12:11:11', '02:20:05'); // output 2020-01-02 09:51:06
# 3) 날짜 변환
MySQL은 날짜를 한 형식에서 다른 형식으로 변환하는 다양한 내장 함수를 제공합니다. 날짜 변환에 가장 널리 사용되는 함수를 살펴 보겠습니다.
a) CONVERT_TZ ()
이 함수는 날짜를 한 시간대에서 다른 시간대로 변환하는 데 사용됩니다. 이는 데이터가 UTC 시간대를 사용하여 저장되었다고 가정하고 표시하는 동안 원하는 시간대로 변환하려는 상황에서 유용합니다.
예를 들면 UTC를 MET (중유 럽 표준시)로 변환합니다.
SELECT CONVERT_TZ('2004-01-01 12:00:00', 'UTC', 'MET');
팁 / 참고
#1) MySQL 시스템 데이터베이스의 모든 시간대 목록을 가져 오려면 아래 쿼리를 실행하고 시간대 이름을 사용하여 한 시간대에서 다른 시간대로 변환 할 수 있습니다.
select * from mysql.time_zone_name
#두) 시간대 정보는 MySQL 서버 인스턴스 설치 중에 채워집니다. 위 쿼리의 결과가 NULL이면 먼저 MySQL 시스템 테이블에 시간대 값을 채워야 할 수 있습니다.
>> 이것을 따르십시오 링크 이에 대한 더 많은 도움이 필요합니다.
b) FROM_UNIXTIME ()
이 함수는 주어진 UNIX TIMESTAMP를 MySQL datetime 형식으로 변환하는 데 사용됩니다.
SELECT FROM_UNIXTIME(1547430881); //output 2019-01-14 07:24:41
c) UNIX_TIMESTAMP
이 함수는 주어진 MySQL 날짜 시간을 UNIX 타임 스탬프로 변환하는 데 사용됩니다.
SELECT UNIX_TIMESTAMP('2020-03-15 07:10:56.123') //output 1584236456.123
UNIX 타임 스탬프는 UTC 1970 년 1 월 1 일 이후 경과 된 초 형식의 지정된 날짜를 나타냅니다.
>> 참조 여기 UNIX 타임 스탬프에 대한 자세한 내용은
# 4) DateTime 열의 특정 부분 가져 오기
때때로 테이블의 datetime 필드 값에 대한 날짜 값의 특정 부분을 가져 오는 것이 좋습니다. 예를 들면 , 아니오를 세고 싶다고 가정합니다. 주문하고 일, 주, 월 등으로 그룹화합니다.
그리고 일반적으로 이러한 값은 테이블에 별도의 열로 저장되지 않습니다. 예를 들면 날짜, 월, 연도 등과 같은 별도의 열이없는 datetime 필드 인 created_on과 같은 열이 하나만있을 것입니다.
MySQL은 DateTime 필드에서 원하는 부분을 추출 할 수있는 유용한 방법을 많이 제공합니다.
datetime 값이 다음과 같다고 가정합니다. ‘2020-03-15 07 : 10 : 56.123’
위의 datetime 값을 사용한 예제와 함께 널리 사용되는 몇 가지 함수를 살펴 보겠습니다.
a) DAY 추출
MySQL은 DAY 정보를 추출하기 위해 다음과 같은 기능을 제공합니다.
데이트() - DateTime 필드의 DATE () 부분을 추출하십시오.
목록 자바를 만드는 방법
SELECT DATE('2020-03-15 07:10:56.123'); //output 2020-03-15
DAYOFMONTH () - datetime의 DAY 부분을 추출하십시오. 본질적으로 그 달의 날입니다. 이 함수를 사용하는 약어는 DAY ()입니다.
SELECT DAYOFMONTH('2020-03-15 07:10:56.123'); //output 15
DAYOFWEEK ()- 요일 (1에서 7 사이의 값)에 해당하는 색인을 추출합니다.
SELECT DAYOFWEEK('2020-03-15 07:10:56.123'); //output 1
DAYOFYEAR () – 아니오로 하루를 추출합니다. 1 년 동안 며칠이 지났습니다. 값의 범위는 1에서 365 (또는 윤년 인 경우 366)입니다.
SELECT DAYOFYEAR('2020-03-15 07:10:56.123'); //output 75
DAYNAME () – 월요일부터 일요일까지의 값으로 요일의 이름을 추출합니다.
SELECT DAYNAME('2020-03-15 07:10:56.123'); //output Sunday
b) 시간 추출
MySQL은 TIME 값을 추출하기 위해 다음과 같은 기능을 제공합니다.
시각() - 시간 부분을 hh : mm : ss 형식으로 추출합니다 (사용 가능한 경우 분수 초 구성 요소 포함).
SELECT TIME('2020-03-15 07:10:56.123'); //output '07:10:56.123'
시() - 필드 / 값의 시간 부분 (1-24 사이의 값)을 추출합니다.
SELECT HOUR('2020-03-15 07:10:56.123'); //output 7
분() - 주어진 datetime의 분 부분 (1-60 사이의 값)을 추출합니다.
SELECT MINUTE('2020-03-15 07:10:56.123'); //output 10
둘째() - 주어진 datetime의 초 부분 (1-60 사이의 값)을 추출합니다.
SELECT SECOND('2020-03-15 07:10:56.123'); //output 56
MICROSECOND () – 지정된 DateTime의 마이크로 초 부분을 추출합니다.
SELECT MICROSECOND('2020-03-15 07:10:56.123'); //output 123000
c) MONTH 추출
MONTH () – 월 인덱스를 추출합니다. 1-12 사이의 값입니다.
SELECT MONTH('2020-03-15 07:10:56.123'); //output 3
MONTHNAME () – 월 이름을 추출합니다. 1 월에서 12 월 사이의 값입니다.
SELECT MONTHNAME('2020-03-15 07:10:56.123'); //output March
d) WEEK, YEAR 및 QUARTER 추출
주() – 주어진 DateTime 값에 대해 년의 WEEK를 추출합니다.
SELECT WEEK('2020-03-15 07:10:56.123'); //output 11
YEAR () – 날짜의 YEAR 부분을 추출합니다.
SELECT YEAR('2020-03-15 07:10:56.123'); //output 2020
QUARTER () – 연도와 관련하여 분기를 추출합니다. 1에서 4 사이의 값입니다.
SELECT QUARTER('2020-03-15 07:10:56.123'); //output 1
위의 모든 방법은 주로 데이터 분석 및 예측에 사용됩니다. 예를 들면 그 달의 어느 날이 아니었다. 최고 주문 수 등
# 5) 두 날짜의 차이점 찾기
주어진 2 개의 datetime 필드 값의 차이를 찾기 위해 MySQL은 DATEDIFF () 및 TIMEDIFF () 함수를 제공합니다.
a) DATEDIFF ()
2 개의 DateTime (또는 날짜) 값 간의 차이를 일 수로 반환합니다.
통사론:
DATEDIFF(DateTime1, DateTIme2)
DATEDIFF () 함수에 대한 몇 가지 예를 살펴 보겠습니다.
DATEDIFF ()는 DateTime 입력을 사용하고 있습니다.
SELECT DATEDIFF('2020-01-05 12:11:11.11', '2020-01-03 14:11:11') //output 2
날짜 입력을 사용하는 DATEDIFF ().
SELECT DATEDIFF('2020-04-02', '2020-01-04') //output 89
음수 출력과 함께 날짜 입력을 사용하는 DATEDIFF ().
SELECT DATEDIFF('2020-04-02', '2020-04-05') //output -3
b) TIMEDIFF ()
이 함수는 TIMEDIFF () 함수가 호출 된 입력에 따라 선택적 소수 부분과 함께‘hh : mm : ss’로 표현 된 두 개의 날짜 / 시간 (또는 시간) 값 간의 차이를 반환합니다.
통사론:
TIMEDIFF(DateTime1, DateTIme2)
위 구문에 따라 TIMEDIFF () 함수의 결과는 expression =>에 대해 'hh : mm : ss'로 지정된 시간입니다. DateTime1 - DateTIme2
점에 유의하시기 바랍니다,
- Expression 1과 Expression2는 모두 동일한 유형입니다. 즉, 하나의 datetime, 다른 just time은 NULL 값을 반환합니다.
- Expression1과 Expression2는 단순한 날짜 일 수 없습니다. 예: DATEDIFF (2020-01-01, 2020-02-01)는 NULL을 반환합니다.
TIMEDIFF () 함수에 대한 몇 가지 예를 살펴 보겠습니다.
DateTime 입력을 사용하는 TIMEDIFF ().
SELECT TIMEDIFF('2020-01-4 12:11:11.11', '2020-01-03 12:11:11') //output 24:00:00.11
시간 입력을 사용하는 TIMEDIFF ().
SELECT TIMEDIFF('12:11:11.11', '02:12:11') //output 09:59:00.11
TIMEDIFF ()가 음수 출력을 반환합니다.
SELECT TIMEDIFF('2020-01-01 12:11:11.11', '2020-01-03 12:11:11') //output -47:59:59.89
점에 유의하시기 바랍니다 DATEDIFF () 및 TIMEDIFF () 모두 첫 번째 인수가 두 번째 인수보다 작을 때마다 NEGATIVE 값을 반환 할 수 있습니다. 즉, 첫 번째 인수는 두 번째 인수에 비해 이전 dateTime 값입니다.
# 6) 날짜 형식 지정
DATE_FORMAT () 함수는 주어진 형식으로 날짜를 변환합니다.
예를 들면 : mm / yyyy 형식으로 필요한 날짜를 변환합니다.
SELECT DATE_FORMAT('2020-03-15 07:10:56.123', '%m/%Y'); //output 03/2020
형식 지정자를 사용하기위한 몇 가지 일반적인 규칙을 살펴 보겠습니다.
체재 | 기술 |
---|---|
%와이 | 연도 값-4 자리 |
%와이 | 연도 값-2 자리 |
%미디엄 | 월 이름 (예 : 1 월, 2 월) |
%미디엄 | 월 이름-숫자 |
%디 | 날짜 |
% h | 시간-00-12 |
%나는 | 의사록 |
%에스 | 초 |
요구 사항에 따라 이러한 형식 지정자를 사용할 수 있으며 MySQL DateTime을 필요한 형식으로 변환 할 수 있습니다.
예: dd / mm / yyyy 형식으로 변환은 다음과 같이 지정할 수 있습니다.
SELECT DATE_FORMAT('2020-03-15 07:10:56.123', '%d/%m/%Y'); //output 15/03/2020
>> 참조 여기 MySQL에서 지원하는 형식 지정자의 전체 목록은
자주 묻는 질문
Q # 1) MySQL에 저장된 날짜의 연도 부분을 어떻게 변경할 수 있습니까?
대답: 주어진 날짜에 대한 특정 숫자로 연도 값을 업데이트하기 위해 DATE_ADD 함수를 사용하고 현재 연도와 변경하려는 연도의 차이를 추가합니다.
예를 들면 : 날짜가 '2020-03-15 07 : 10 : 56.123'이고 날짜의 연도 부분을 2018로 변경한다고 가정 해 보겠습니다. 이렇게하려면,
- 먼저 업데이트 할 연도와 날짜의 실제 연도의 차이를 찾을 수 있습니다. 이것은 YEAR 함수를 사용하여 달성 할 수 있습니다.
SELECT (2018 - year('2020-03-15 07:10:56.123')) //output -2
- 이제 DATE_ADD 함수를 사용하여이 -2를 연도 간격으로 추가 할 수 있습니다.
SELECT DATE_ADD('2020-03-15 07:10:56.123', INTERVAL -2 year) //output 2018-03-15 07:10:56.123000
위에서 방금 날짜의 연도 부분을 변경했음을 알 수 있습니다.
날짜의 특정 부분을 변경해야하는 경우 동일한 단계 집합을 사용할 수 있습니다. 예: 월, 일 등
Q # 2) MySQL에서 필요한 형식으로 datetime을 변경하는 방법은 무엇입니까?
인증 필요 사용자 이름 및 암호 라우터
대답: MySQL은 쿼리 결과에 표시하기 위해 필요한 형식의 문자열로 datetime을 변환하는 DATE_FORMAT () 함수를 제공합니다.
>> 참조 여기 형식 지정자의 전체 목록은
예: datetime을 dd : mm : yyyy 형식으로 변환하려면 다음 쿼리를 사용할 수 있습니다.
SELECT DATE_FORMAT('2020-03-15 07:10:56.123', '%d:%m:%Y');
Q # 3) MySQL의 날짜 형식은 무엇입니까?
대답: MySQL의 표준 날짜 형식은‘dd-mm-yyyy hh : mm : ss. { fractionalPart }
MySQL에 저장된 샘플 날짜 시간 값 -‘2020-03-15 07 : 10 : 56.123’
Q # 4) MySQL에서 DATE 데이터 유형으로 테이블을 생성하는 방법.
대답: MySQL은 필요에 따라 날짜 및 시간 값을 저장하기 위해 다양한 데이터 유형을 제공합니다. 날짜 만 저장하기 위해 – DATE 데이터 유형을 사용할 수 있습니다. yyyy-mm-dd 형식으로 데이터를 저장합니다.
열을 DATE 유형으로 지정하는 예를 살펴 보겠습니다.
CREATE TABLE date_illustration(date_col DATE);
결론
이 튜토리얼에서는 날짜 및 시간 값을 저장하기 위해 MySQL에서 제공하는 다양한 데이터 유형과 MySQL에서 제공하는 다양한 사용하기 쉬운 함수를 사용하여 날짜 시간 값에 대한 계산을 수행하는 방법에 대해 배웠습니다.
또한 주어진 DateTime 값의 특정 부분 추출, 주어진 날짜를 다른 형식으로 변환, 기존 값에 날짜 / 시간 값 추가 등과 같은 다양한 기능에 대해 배웠습니다.
DateTime은 MySQL에서 가장 중요한 데이터 유형 중 하나이며 이벤트 발생 시점에 대한 세부 정보를 가져 오는 데 매우 중요합니다.
이러한 값은 머신 러닝 모델을 준비하고 중요한 비즈니스 결정을 내리기 위해 날짜를 많이 분할하고 축소하는 데이터 분석가 / 머신 러닝 / 가격 책정 모델 등에서 매우 널리 사용됩니다.