>  기사  >  데이터 베이스  >  MySQL에서 시간 변환을 수행하는 방법

MySQL에서 시간 변환을 수행하는 방법

王林
王林앞으로
2023-05-28 12:05:211499검색

MySQL은 DATETIME, TIMESTAMP, DATE, TIME과 같은 다양한 유형의 시간 표현을 지원합니다. 이러한 유형이 MySQL에 저장되는 시간은 UTC 시간입니다.

시간 문자열을 시간 유형으로 변환하려면 MySQL의 STR_TO_DATE() 함수를 사용하세요. 이 함수의 구문은 다음과 같습니다.

STR_TO_DATE(str, format)

그 중 str은 변환할 문자열을 나타내고, format은 문자열에 포함된 날짜와 시간의 형식을 나타냅니다. 예:

SELECT STR_TO_DATE('2019-08-14 21:12:23', '%Y-%m-%d %H:%i:%s');

이 SQL 문은 2019년 8월 14일 21:12:23을 나타내는 DATETIME 유형 시간을 반환합니다.

STR_TO_DATE() 함수를 사용할 때 다음 사항에 주의해야 합니다.

  1. 형식 문자열에서 식별자의 대소문자(예: Y, m, d, H, i, s 등) .) 는 다릅니다. 대문자는 엄격한 일치를 의미하고, 소문자는 느슨한 일치를 의미합니다. 예를 들어 %m은 01 및 1과 같은 형식을 허용하는 숫자 월을 나타내고 %M은 정확한 일치가 필요한 영어 월을 나타냅니다.

  2. 형식 문자열에 사용되는 구분 기호는 실제 문자열에 사용되는 구분 기호와 동일해야 합니다. 실제 문자열에서 "-"가 날짜 구분 기호로 사용되는 경우 형식 문자열도 "-"를 구분 기호로 사용해야 합니다.

  3. 엄격 모드: 형식 문자열이 실제 문자열과 일치할 수 없는 경우, 엄격 모드를 사용하는 경우(예: MySQL 구성 파일에서 sql_mode를 STRICT_ALL_TABLES로 설정), 엄격 모드를 사용하지 않으면 오류가 반환됩니다. 반환됩니다.

STR_TO_DATE() 함수 외에도 UNIX_TIMESTAMP() 함수를 사용하여 문자열 유형 시간을 UNIX 타임스탬프로 변환할 수도 있습니다. UNIX 타임스탬프는 현재 시간인 1970년 1월 1일 00:00:00 이후 경과된 초 수를 나타내는 정수입니다. 예:

SELECT UNIX_TIMESTAMP('2019-08-14 21:12:23');

이 SQL 문은 2019년 8월 14일 21:12:23의 UNIX 타임스탬프를 나타내는 정수를 반환합니다.

UNIX 타임스탬프와 MySQL의 시간 유형은 UTC 시간을 기준으로 하기 때문에 직접 비교하고 계산할 수 있습니다. 예를 들어, UNIX_TIMESTAMP()를 사용하여 시간 유형을 UNIX 타임스탬프로 변환한 다음 이를 빼서 두 시간 간의 시간 차이를 얻을 수 있습니다. 예:

SELECT UNIX_TIMESTAMP('2019-08-14 21:12:23') - UNIX_TIMESTAMP('2019-08-14 21:12:21');

이 SQL 문은 2019년 8월 14일 21:12:23과 2019년 8월 14일 21:12:21 사이의 시간 차이(2초)를 나타내는 정수를 반환합니다.

문자열 유형을 시간 유형으로 변환하는 것 외에도 DATE_FORMAT() 함수를 사용하여 시간 유형을 문자열 유형으로 변환할 수도 있습니다. 이 함수의 구문은 다음과 같습니다.

DATE_FORMAT(date, format)

그 중 date는 변환할 시간, format은 반환되는 문자열 형식입니다. 예:

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');

이 SQL 문은 "YYYY-MM-DD HH:MI:SS" 형식으로 현재 시간의 문자열 표현을 반환합니다.

위 내용은 MySQL에서 시간 변환을 수행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제