programing

postgres 기본 표준 시간대

stoneblock 2023. 5. 24. 21:40

postgres 기본 표준 시간대

설치했습니다.PostgreSQL 9그리고 그것이 보여주는 시간은 서버 시간보다 1시간 늦습니다.

입니다.Select NOW()표시:2011-07-12 11:51:50.453842+00

서버 날짜는 다음과 같습니다.Tue Jul 12 12:51:40 BST 2011

1시간 늦었지만 다음과 같은 시간대입니다.phppgadmin다음과 같습니다.TimeZone Etc/GMT0

저는 그 안으로 들어가려고 시도했습니다.postgresql.conf및 설정

시간대 = GMT

다시 시작하지만 변경 사항은 없습니다.

서버 표준 시간대만 사용했을 것이라고 생각했지만 분명히 사용하지 않은 아이디어가 있습니까?!

솔루션!:하기로 했습니다.GMT전에 그리고 그것은 한 시간 늦었습니다. 검색한 후에 제가 그것을 설정할 필요가 있다는 것이 밝혀졌습니다.Europe/London이것은 영국 여름 시간의 +1시간을 고려하지만 GMT는 고려하지 않습니다!

표준 시간대는 세션 매개 변수입니다.따라서 현재 세션의 표준 시간대를 변경할 수 있습니다.

의사를 참조하십시오.

set timezone TO 'GMT';

또는 SQL 표준에 더 가깝게 명령을 사용합니다.위의 코드가 단일 단어 "타임존"을 사용하는 "타임존"에 대해 두 단어를 주목하십시오.

SET TIME ZONE 'UTC';

의사가 차이점을 설명합니다.

SET TIME ZONE은 SQL 표준에 정의된 구문을 확장합니다.표준은 Postgre 동안 숫자 시간대 오프셋만 허용합니다.SQL을 사용하면 시간대를 보다 유연하게 지정할 수 있습니다.다른 모든 SET 기능은 Postgre입니다.SQL 확장입니다.

선택timezone출처:

SELECT * FROM pg_timezone_names;

그리고.set아래의 예와 같이:

ALTER DATABASE postgres SET timezone TO 'Europe/Berlin';

다음 대신 DB 이름 사용postgres상술한 바와 같이

무함마드 우사마가 받아들인 답은 맞습니다.

구성 매개 변수 이름

이 대답은 다음을 사용하여 Postgres별 구성 매개 변수를 설정하는 방법을 보여줍니다.

SET timezone TO 'UTC';

…어디에timezone는 SQL 명령이 아니라 구성 매개 변수의 이름입니다.

자세한 내용은 의사에게 문의하십시오.

표준 SQL 명령

또는 SQL 사양으로 정의된 SQL 명령을 사용할 수 있습니다.SET TIME ZONE이 구문에서 한 쌍의 단어는TIME ZONE"timezone"(실제 SQL 명령 대 매개 변수 이름)을 대체하고 "TO"는 없습니다.

SET TIME ZONE 'UTC';

이 명령과 위 명령은 모두 현재 세션의 값만 설정하기 위해 동일한 효과를 가집니다.변경 내용을 영구적으로 변경하려면 다음 형제자매 답변을 참조하십시오.

자세한 내용은 의사에게 문의하십시오.

표준시 이름

적절한 표준 시간대 이름을 지정할 수 있습니다.대부분은 대륙/지역입니다.

SET TIME ZONE 'Africa/Casablanca';

…또는…

SET TIME ZONE 'America/Montreal';

다음과 같은 3개 또는 4개의 문자 축약어를 사용하지 않습니다.EST또는IST표준화되지도 않고 고유하지도 않기 때문입니다.표준 시간대 이름 목록은 위키백과를 참조하십시오.

현재 영역 가져오기

세션의 현재 표준 시간대를 보려면 다음 문장 중 하나를 사용하십시오.엄밀히 말하면 런타임 매개 변수를 표시하기 위해 명령을 호출하는 것입니다.

SHOW timezone ;

…또는…

SHOW time zone ;

미국/태평양

Postgres 9.1의 시간대 변경을 완료하려면 다음 작업을 수행해야 합니다.

1.- /usr/share/postgresql/9.1/의 "시간대" 폴더에서 해당 파일을 검색합니다. 이 경우 "America.txt"가 해당 파일에서 가장 가까운 위치를 검색하고 왼쪽 열의 첫 번째 문자를 복사합니다.

예를 들어, "뉴욕" 또는 "파나마"에 있는 경우 "EST"가 됩니다.

#  - EST: Eastern Standard Time (Australia)
EST    -18000    # Eastern Standard Time (America)
                 #     (America/New_York)
                 #     (America/Panama)

2.- "표준 시간대" 줄의 주석을 제거합니다.postgresql.conf파일을 작성하고 표시된 대로 표준 시간대를 배치합니다.

#intervalstyle = 'postgres'
#timezone = '(defaults to server environment setting)'
timezone = 'EST'
#timezone_abbreviations = 'EST'     # Select the set of available time zone
                                        # abbreviations.  Currently, there are
                                        #   Default
                                        #   Australia

3.- 우편물 다시 시작

이전 답변 외에도 도구 pgAdmin III를 사용하는 경우 다음과 같이 시간대를 설정할 수 있습니다.

  1. [도구] > [서버 구성] > [postgresql.conf]를 통해 Postgres 구성을 엽니다.
  2. 입력 시간대를 찾고 두 번 클릭하여 엽니다.
  3. 값 변경
  4. 서버를 다시 로드하여 구성 변경 사항 적용(위쪽 또는 서비스를 통해 재생 버튼)

pgAdmin III의 Postgres 구성

대부분의 타사 클라이언트는 Postgres 서버 및/또는 세션 설정과 겹치는 자체 표준 시간대 설정을 가지고 있습니다.

예를 들어 'IntelliJ IDEA 2017.3'(또는 DataGrips)을 사용하는 경우 다음과 같이 시간대를 정의해야 합니다.

'DB 원본 속성' -> '고급' 탭 -> 'VM 옵션': -Duser.timezone=UTC+06:00

그렇지 않으면 다른 곳에서 설정한 내용에도 불구하고 'UTC'가 표시됩니다.

영구적으로 변경하려는 Windows 10/11 사용자의 경우 파일 위치는 다음과 같습니다.

C:\Program Files\PostgreSQL\<your-postgres-version>\data\postgresql.conf

나에게 그것은 구체적으로 다음과 같았습니다.

C:\Program Files\PostgreSQL\14\data\postgresql.conf

그러면 텍스트 편집기에서ctrl-f찾기 위해서.timezone합니다. (은 " " " 를 실행하면 수 있습니다." (" 이음실찾니합다재다수설있정니습다면을") 를 실행하면 .SELECT * FROM pg_timezone_names):

log_timezone = 'UTC'

그리고.

timezone = 'UTC'

데이터베이스 GUI 또는 CLI에서 다음 쿼리를 실행하여 구성 파일을 다시 로드합니다.

select pg_reload_conf()

다음을 실행하여 영구적인 변경 사항 확인:

show timezone

질문과 관련이 없을 수도 있지만 CST를 사용하고 시스템 시간대를 원하는 tz(America/...)로 설정한 다음 postgresql conf에서 시간대의 값을 'local time'으로 설정하면 적절한 시간을 current_time으로 출력하는 매력적인 역할을 했습니다(Ubuntu 16의 Postgresql 9.5).

사용 중인 역할의 표준 시간대를 설정하면 어떻게 됩니까?

ALTER ROLE my_db_user IN DATABASE my_database
    SET "TimeZone" TO 'UTC';

이것이 무슨 소용이 있습니까?

의 경우: postgresql.conf에서 postgres14+를 합니다.timezone = 'Europe/Budapest'

언급URL : https://stackoverflow.com/questions/6663765/postgres-default-timezone