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

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

PHPz
PHPz원래의
2023-04-20 10:10:074249검색

MySQL에서는 시간을 문자열 형태로 테이블에 저장하는 경우가 많지만 이는 시간 계산 및 비교에 불편합니다. 따라서 관련 작업을 수행하기 쉽도록 문자열 유형의 시간을 시간 유형으로 변환해야 합니다. 이 기사에서는 MySQL에서 시간을 변환하는 방법을 소개합니다.

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로 설정) 엄격 모드를 사용하지 않으면 오류가 반환됩니다. NULL을 반환합니다.

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 타임스탬프를 나타내는 정수를 반환합니다.

MySQL의 UNIX 타임스탬프와 시간 유형은 모두 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에서는 시간이 문자열 형식으로 테이블에 저장되는 경우가 많습니다. 시간 계산 및 비교를 용이하게 하기 위해서는 문자열 형식의 시간을 시간 형식으로 변환하여 직접 계산 및 비교가 가능해야 합니다. MySQL에서 제공하는 STR_TO_DATE(), UNIX_TIMESTAMP() 함수를 사용하여 문자열 유형의 time을 시간 유형이나 UNIX 타임스탬프로 변환하거나, DATE_FORMAT() 함수를 사용하여 시간 유형을 문자열 유형으로 변환할 수 있다. 변환 함수를 사용할 때 형식 문자열 작성 사양과 엄격 모드 사용에 주의해야 합니다.

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

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