将CSV时间戳列导入postgresql时出错-格式无效?

kqlmhetl  于 2023-03-27  发布在  PostgreSQL
关注(0)|答案(1)|浏览(194)

我尝试使用dBeaver v23.0.0及其UI导入过程将CSV文件导入到Windows 14.2版本的postgresql中,但收到以下错误:

ERROR: invalid input syntax for type timestamp: "04 Feb 2022 09:18:23:667"

我尝试将目标数据库列定义为timestamptimestamptz,但没有任何区别。日期/时间字符串对我来说看起来很好,相同的CSV文件导入MS SQL Server也很好(叹气)。
我错过了什么?

qyzbxkaa

qyzbxkaa1#

show datestyle; 
SQL, MDY 

select '04 Feb  09:18:23:667 2022'::timestamp;  
invalid input syntax for type timestamp ... 

select '04 Feb  09:18:23.667 2022'::timestamp; 
02/04/2022 09:18:23.667.

问题是... 23:667 ...中的:。不知道MS SQL Server如何处理这个问题,因为我看到的示例都使用.
解决方案是:
1.在文件中将:更改为.
1.将CSV数据导入到staging表中,然后使用以下命令传输到最终表:

select to_timestamp('04 Feb  09:18:23:667 2022', 'DD Mon HH:MI:SS:MS YYYY');
02/04/2022 09:18:23.667 PST

其中to_timestamp()来自Data Formatting Functions。在该页上查找 * 表9 - 27.日期/时间格式的模板模式 *,以了解模板模式的含义。

相关问题