在PostgreSQL中,在处理时间戳值时,您传递给create table调用的数据类型是什么?

问题描述 投票:0回答:1

如何创建表格时如何处理csv文件中具有以下语法的时间戳 - MM / DD / YY HH:MI?这是一个例子:1/1/16 19:00

我在PostgreSQL中尝试了以下脚本:

create table timetable (
     time timestamp
);

copy table from '<path>' delimiter ',' CSV; 

但是,我收到一条错误消息:

错误:错误:类型为timestamp的输入语法无效:“visit_datetime”其中:COPY air_reserve,第16行,列visit_datetime:“visit_datetime”

我考虑过的一个解决方案是首先在char中创建timestamp列,然后运行一个单独的查询,使用函数调用'to_char(time,MM / DD / YY HH:MI)将其转换为适当的timestamp数据类型。但是,我正在寻找一种能够在单个查询中以正确的数据类型加载数据的解决方案。

sql postgresql
1个回答
0
投票

您可能会找到一个datestyle,它可以让您加载您拥有的数据,但迟早有人会向您提供不适合的数据。

您考虑的解​​决方案可能是最好的。

我们将此作为加载数据仓库的标准模式。我们获取今天的数据,使用varchar列将其加载到临时表中,以用于不会直接加载到其目标数据类型的任何数据。然后,我们运行我们需要的任何脚本来使数据处于良好状态,并以我们以前从未见过的方式对任何破坏的事物发出警告。然后,我们将当前数据的已清理版本添加到包含所有前几天的已清理数据的表中。

我们不介意这需要几个步骤;我们将它们全部放在脚本中并作为自动化作业运行。

我正在努力记录我们使用的技术。你可以在http://www.thedatastudio.net看到这个的开头。

© www.soinside.com 2019 - 2024. All rights reserved.