Postgres 节点常见问题
以下是
Postgres 节点的一些常见错误和问题以及解决或排除故障的步骤。动态填充 SQL组
在 Postgres 中,您可以使用 SQL
比较结构对值组进行比较:1 | |
虽然您可以在查询中使用 n8n
表达式来动态填充组中的值,但将其与查询参数相结合可以通过自动清理输入来提供额外的保护。要使用查询参数构建组查询:
- 将操作设置为执行查询。
- 在选项中,选择查询参数。
- 使用表达式从输入数据中选择一个数组。例如, 。
- 在查询参数中,使用带有空括号的结构编写查询。例如:
- 在括号内,使用表达式动态创建基于索引的占位符(例如、和),以表示查询参数数组中的项目数。由于占位符变量的索引为 1,因此您可以通过将每个数组索引加 1 来实现此目的:
使用此技术,n8n 会根据数组中的项目数自动为值创建正确数量的
准备好的语句占位符。使用时间戳和时区
为了避免 n8n 和 Postgres 解释时间戳和时区数据时出现复杂情况,请遵循以下一般提示:
- 存储和传递日期时使用 UTC :使用 UTC 有助于避免在不同表示形式和系统之间转换日期时因时区转换而产生的混淆。
- 设置执行时区:使用环境变量(适用于自托管)或在设置中(适用于 n8n 云)设置 n8n 中的全局时区。您可以在工作流设置中设置特定于工作流的时区。
- 使用 ISO 8601 格式: ISO 8601 格式将日期、月份、年份、小时、分钟和秒编码为标准字符串。n8n 将日期以字符串形式在节点之间传递,并使用Luxon解析日期。如果您需要明确转换为 ISO 8601 格式,可以使用日期和时间节点并将自定义格式设置为字符串。
将日期列输出为日期字符串而不是 ISO 日期时间字符串
n8n 使用该
包与 Postgres 集成,这影响 n8n 如何处理来自 Postgres 的日期、时间戳和相关类型。该包默认将值解析为,从而生成符合
ISO 8601 日期时间字符串格式的日期。例如,根据实例的时区设置,的日期可能会生成 的日期时间字符串。要解决此问题,请使用
Postgres函数在查询时将日期格式化为预期格式:1 | |
这将生成一个不包含时间或时区部分的字符串日期。继续前面的示例,通过这种转换,日期会生成字符串。您可以在
dates 包文档中了解更多信息。