我开始遵循 gcp 的官方文档,以便将我的 csv 数据导入到云扳手 Spanner 上的实例,但我收到此错误:
*Error java.time.format.DateTimeParseException: Text '2024-05-30THH24:16:30.892' could not be parsed at index 10*
我正在使用此命令生成 csv 文件:
psql -h localhost -U myuser -d mydatabase -c
"Copy (SELECT id, TO_CHAR(created_at, 'YYYY-MM-DD"T"HH24:MI:SS.MS') AS created_at FROM mytable) To STDOUT With CSV DELIMITER ',';" > /mycarpet/.csv
桌子有这样的配置:
id character varying(10) NOT NULL,
created_by character varying(50),
在我设置的作业配置上:dateFormat=yyyy-MM-dd hh:mm:s
有什么想法,我该如何解决这个问题吗?
问题似乎是从 PostgreSQL 导出导致生成无效数据。导入作业抱怨
'2024-05-30THH24:16:30.892'
不是有效的日期/时间字符串,这显然是正确的结论。您的导出似乎将固定字符串 HH24
写入文件,而不是实际的小时。
我建议您手动检查:
SELECT id, TO_CHAR(created_at, 'YYYY-MM-DD"T"HH24:MI:SS.MS') AS created_at FROM mytable
时的输出是什么。提示: 当您似乎尝试将数据从 PostgreSQL 数据库复制到 Spanner PostgreSQL 数据库时,您也可以使用 PGAdapter 直接复制它,而无需通过 csv 文件。请参阅此示例了解如何执行此操作。