我需要更改数据库配置,以将UTC用作AWS RDS上托管的PostgreSQL10实例的默认设置。我希望它在数据库级别上永久更改,并且无论如何都不要恢复到任何其他时区。
我尝试运行此命令,但显示0条更新的行:
ALTER DATABASE <my-db> SET timezone='UTC';
我尝试将自定义参数组附加到RDS中的数据库并像这样修改条目(也可以在之后重新启动):
无论我做什么,当我运行select * from pg_settings where name = 'TimeZone';
或SHOW timezone
时,它都会显示“美国/芝加哥”。
这似乎应该很容易做到,但是事实证明这是一个挑战。
答案 0 :(得分:2)
如果要在UTC中存储时间戳,并且始终希望数据库也以UTC将数据发送到客户端,则应使用数据类型cmake_minimum_required(VERSION 3.0)
project(FirstOpenGL)
set(SOURCE main.cpp)
add_executable(myapp ${SOURCE})
#Below Im trying to link ALL of the libs under the "project's local path"
include_directories(${CMAKE_SOURCE_DIR}/Includes)
link_directories(LinkPathSo ${CMAKE_SOURCE_DIR}/Lib_so)
link_directories(LinkPathA ${CMAKE_SOURCE_DIR}/Lib_a)
link_directories(LinkPathDll ${CMAKE_SOURCE_DIR}/Lib_dll)
target_link_libraries(myapp LinkPathSo)
target_link_libraries(myapp LinkPathA)
target_link_libraries(myapp LinkPathDll)
# Below: Im trying to link the installed binaries on mac
find_package(glfw3 3.2 REQUIRED)
find_package(OpenGL REQUIRED)
target_include_directories(myapp ${OPENGL_INCLUDE_DIR})
target_link_libraries(myapp ${OPENGL_gl_LIBRARY})
target_link_libraries(myapp ${OPENGL_glu_LIBRARY})
,该数据类型将不会对您。那将是最简单的解决方案。
要转换数据,可以这样进行:
timestamp without time zone
答案 1 :(得分:0)
基于此dba.stackexchange.com问题。显然,PG将时间戳存储为UTC时间,然后将其转换为会话时区。从我收集到的信息来看,由于我的时间戳不包含时区信息,因此我需要告诉PG,所存储的时区是UTC,然后将其转换为所需的任何本地时间,因此是这样的:
SELECT my_timestamp_in_utc AT TIME ZONE 'UTC' AT TIME ZONE 'America/Denver' as my_local_time
FROM my_table;
这有点冗长,但是我现在要继续。