현재 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
'programing' 카테고리의 다른 글
Angular2 입력이 변경되면 동적 입력 필드가 포커스를 잃음 (0) | 2023.11.07 |
---|---|
jquery $(window).높이 ()이(가) 문서 높이를 반환합니다. (0) | 2023.11.07 |
플라스크에서 MySQL 사용 (0) | 2023.11.07 |
TabHost Activity에서 결과(ActivityForResult 시작)를 반환하는 방법은 무엇입니까? (0) | 2023.11.07 |
utf-8의 utf-8에서 php로 오라클의 데이터 (0) | 2023.11.02 |