programing

현재 GMT 시간에 대한 MySQL 쿼리

closeapi 2023. 11. 7. 20:52
반응형

현재 GMT 시간에 대한 MySQL 쿼리

간단해 보이지만 GMT에서 현재 시간을 되돌리기 위해 간단한 SELECT 문을 사용하는 방법을 찾을 수 없었습니다.

서버 시간대와 GMT 시간대를 기준으로 NOW()를 GMT로 변환하기 위해 CONVERT_TZ()를 사용하려고 했는데 어떤 이유로 문자 시간대를 입력하면 NULL이 반환됩니다.제가 결과를 얻을 수 있는 유일한 방법은 실제로 오프셋을 입력하는 것입니다. 이는 정말 간단한 작업이기에는 너무 복잡해지고 있습니다.제 말은 이렇습니다.

mysql> SELECT CONVERT_TZ(NOW(),@@global.system_time_zone,'GMT');
NULL

mysql> SELECT CONVERT_TZ(NOW(),'PST','GMT');
NULL

mysql> SELECT CONVERT_TZ(NOW(),'-08:00','+00:00');
2010-02-13 18:28:22

GMT에서 현재 시간을 반환하는 간단한 쿼리만 있으면 됩니다. 도움을 주셔서 미리 감사드립니다!

UTC만 사용하면 됩니다(낮 시간 절약에 영향 받지 않음).

SELECT UTC_TIMESTAMP();

참고할 수 있는 이전 내용:

이것은 효과가 있을 것이지만, 하지만.

SELECT CONVERT_TZ(NOW(),'PST','GMT');

결과적으로 NULL도 받았습니다.mysql 문서의 예제 또한 null을 반환합니다.

SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_convert-tz mysql에서 버그를 발견한 것 같습니다.. (+Stephen Pritchard 덕분에)

시도해 볼 수 있습니다.

SET @OLD_TIME_ZONE=@@TIME_ZONE;
SET TIME_ZONE='+00:00';
SELECT NOW();
SET TIME_ZONE=@OLD_TIME_ZONE;

ok는 정확히 당신이 원하는 것이 아닙니다. (4개의 쿼리가 있지만 한 개만 선택합니다 :-)

CONVERT_TZ()에 버그 없음

CONVERT_TZ()를 사용하려면 표준 시간대 테이블을 설치해야 합니다. 그렇지 않으면 MySql이 NULL을 반환합니다.

CLI에서 다음을 root으로 실행합니다.

# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql

http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html 참조

감사해요.

http://www.ArcanaVision.com (SJP 2011-08-18)

참고: GMT에는 DST UTC가 없을 수 있습니다.

SELECT UTC_TIMESTAMP();

여기서 치트시트를 만들었어요MySQL의 표준 시간대를 UTC로 설정해야 합니까?

현재 UTC 날짜 시간을 가져오는 확실한 방법은 다음과 같습니다.

SELECT CONVERT_TZ(NOW(), @@session.time_zone, '+0:00')

위의 모든 답변을 보고 PST로 변환하는 것이 신뢰할 수 없다는 것을 알고 이를 사용했습니다.

DATE_SUB(사용자_마지막_로그인, 인터벌 7시간)

이 방법은 효과가 있을 것입니다. 시간대를 잘못 지정한 것 같습니다.시카고를 예로 들며

SELECT CONVERT_TZ(NOW(), 'America/Chicago', 'GMT')

소스 서버 타임스탬프를 알 수 없지만 특정 tz에 대한 요구 사항인 경우 다음 작업을 수행합니다.

select convert_tz(utc_timestamp(),'+05:00','+00:00')

이것은 CST를 예로 들 수 있습니다.utc_timestamp는 '+00:00' 결과를 어디에 문의하든 보장합니다.원하는 오프셋은 '+05:00' 입니다.이것은 알 수 없는 여러 서버를 칠 때 효과적이며, 반환 결과가 모두 공통 tz 결과 집합에 포함된다는 것을 보장합니다.

GMT+6(아시아/다카 시간대)이라는 시간대를 찾고 있었습니다.

제 SQL 서버는 미국에 있습니다.아래 내용이 저에게 효과가 있었습니다.

SELECT CONVERT_TZ ( UTC_TIMESTamp( ), '+06:00', '+00:00' )

CONVERT_TZ 기능에 버그가 없습니다.시간대 이름/약어를 사용하기 때문에 NULL이 됩니다.mysql.time_zone_name 테이블을 설치하지 않으면 이 'GMT' 'PST' 등이 무엇을 의미하는지 Mysql은 알 수 없습니다.그러나 숫자를 사용하면 항상 효과가 있습니다.

mysql> SELECT CONVERT_TZ(NOW(), 'America/Chicago', 'GMT');

NULL을 반환합니다.

mysql> SELECT CONVERT_TZ(NOW(),'-08:00','+00:00');

반품 2016-06-24 17:58:33

언급URL : https://stackoverflow.com/questions/2258274/mysql-query-for-current-gmt-time

반응형