PostgreSQL中具有不同时区的时间戳

PostgreSQL中具有不同时区的时间戳,postgresql,timestamp,Postgresql,Timestamp,我的任务是在3、5、7天后归档数据 我使用PostgreSQL。有些表有带时区的时间戳条目,有些表没有。当铸造到目前为止,我得到了相同的时间点不同的值。如何规范化这些数据集以在存档中获得一致的数据集 日期类似于“2011-08-01 17:03:19+05:30” 创建或替换函数存档(表名文本、字段名文本、天数整数、存档路径文本) 将文本返回为 $BODY$ 声明 格式化日期文本; 文件名文本; totalCount整数; 带有计数文本的文件名; stmt文本; 开始 格式_date:=to_c

我的任务是在3、5、7天后归档数据

我使用PostgreSQL。有些表有带时区的时间戳条目,有些表没有。当铸造到目前为止,我得到了相同的时间点不同的值。如何规范化这些数据集以在存档中获得一致的数据集

日期类似于“2011-08-01 17:03:19+05:30”

创建或替换函数存档(表名文本、字段名文本、天数整数、存档路径文本)
将文本返回为
$BODY$
声明
格式化日期文本;
文件名文本;
totalCount整数;
带有计数文本的文件名;
stmt文本;
开始
格式_date:=to_char(localTIMESTAMP,'yyyyymmddhhmmss');
stmt:=“从“||tableName | |”中选择COUNT(*),其中DATE(“|| fieldName | | |”)0,则
--提出通知“格式日期:%”,格式日期;
文件名:='D:/'| |'/'| | | |'/'| | |表格名| |'| |格式|日期| |'.csv';
执行“复制(从“| |引用|标识(表名)| |”中选择*,其中日期(“| |引用|标识(字段名)| |”)<日期((当前|日期-整数“”| |天| |“”)限制100000)到“| |文件名|“”,带CSV头”;
执行'DELETE FROM'| | quote| ident(tableName)| |'where date('| | | | quote| ident(fieldName)|')
试试这个:

SELECT TIMESTAMP '2001-02-16 20:38:40+1' AT TIME ZONE 'UTC';
。。其中UTC代表“协调世界时”。您可以使用任何其他时区名称或缩写-请阅读。有关可接受的时区缩写的列表:

SELECT * FROM pg_timezone_abbrevs;  

按如下方式编写查询:

SELECT * FROM my_tbl WHERE (my_ts_fld AT TIME ZONE 'UTC')::date = $my_date;
SELECT * FROM my_tbl WHERE (my_ts_fld AT TIME ZONE 'UTC')::date = $my_date;