Postgresql 使用Talend将yyyyMMdd字符串插入日期列
我有以下情况:Postgresql 使用Talend将yyyyMMdd字符串插入日期列,postgresql,date,talend,Postgresql,Date,Talend,我有以下情况: 包含日期类型列date的表的PostgreSQL数据库 来自分隔的.txt文件的字符串,输出:20170101 我想在日期类型列中插入字符串 到目前为止,我尝试了以下方法,但结果/错误参差不齐: 解释:这一点相当明显 可以查看解析为“2017-01-01 00:00:00.000000+01:00:00”的字符串 当我试图直接执行查询时,我得到一个“SQL错误:42601:Error:Syntax Error,位于“00”位置194” 其他观察/尝试: 有趣的是,如果我
- 包含日期类型列date的表的PostgreSQL数据库
- 来自分隔的.txt文件的字符串,输出:20170101
解释:这一点相当明显
可以查看解析为“2017-01-01 00:00:00.000000+01:00:00”的字符串 当我试图直接执行查询时,我得到一个“SQL错误:42601:Error:Syntax Error,位于“00”位置194”
其他观察/尝试: 有趣的是,如果我在查询中使用'20170101'作为一个字符串,请参见下文
INSERT INTO "data" ("location_id","date","avg_winddirection","avg_windspeed","avg_temperature","min_temperature","max_temperature","total_hours_sun","avg_precipitation") VALUES (209,'20170101',207,7.7,NULL,NULL,NULL,NULL,NULL)
我还尝试将数据库日期列的模式更改为字符串。它产生以下结果:
Batch entry 0 INSERT INTO "data" ("location_id","date","avg_winddirection","avg_windspeed","avg_temperature","min_temperature","max_temperature","total_hours_sun","avg_precipitation") VALUES (209,20170101,207,7.7,NULL,NULL,NULL,NULL,NULL) was aborted. Call getNextException to see the cause.
此查询也不能直接工作,因为日期不在单引号之间
我错过了什么或没有做什么? (我在2-3天前开始学习使用Talend) 编辑// 我的工作和tMap的截图 编辑//这似乎不是日期格式问题,而是Talend到PostgreSQL的连接问题 编辑//
修正:这当然是一个愚蠢的简单问题/解决方案。数据库名称和架构名称字段为空。。。所以它基本上不知道连接到哪里,你不需要做任何事情就可以将类似于
20170101
的字符串插入到日期列中。PostgreSQL将为您处理它—它只是ISO 8601的日期格式
CREATE TABLE foo ( x date );
INSERT INTO foo (x) VALUES ( '20170101' );
如果有什么问题的话,这只是一个talend问题。在日期列中插入类似于
20170101
的字符串不必做任何事情。PostgreSQL将为您处理它—它只是ISO 8601的日期格式
CREATE TABLE foo ( x date );
INSERT INTO foo (x) VALUES ( '20170101' );
如果有什么问题的话,这只是泰伦德的问题
[…](209,2017-01-01 00:00:00.000000+01:00:00,207,7.7,空,空,空,空)[…]
若Talend自己不知道将时间戳传递到查询中要求它是单引号的,那个么若可能的话,您需要这样做
[…](209,2017-01-01 00:00:00.000000+01:00:00,207,7.7,空,空,空,空)[…]
若Talend自己不知道将时间戳传递到查询中需要单引号,那个么若可能的话,您需要这样做。修复:这当然是一个愚蠢的简单问题/解决方案。数据库名称和架构名称字段为空。。。所以它基本上不知道连接到哪里,这就是为什么我得到了0批错误,当我在调试时深入时,我发现它找不到表,说明关系不存在。修复:这当然是一个愚蠢的简单问题/解决方案。数据库名称和架构名称字段为空。。。所以它基本上不知道连接到哪里,这就是为什么我得到了批处理0错误,当我深入调试时,我发现它找不到表,说明关系不存在。像这样尝试 输入文件中的数据为:20170101(字符串格式) 然后将tMap设置为, 结果如下: 像这样试试 输入文件中的数据为:20170101(字符串格式) 然后将tMap设置为, 结果如下:
事实上,我也得出了这个结论。我希望有塔伦德经验/知识的人会出现。这确实是塔伦德的问题。但这是一个完全不同的问题。它没有数据库名和模式名,所以它不知道连接到哪里。我希望有塔伦德经验/知识的人会出现。这确实是塔伦德的问题。但这是一个完全不同的问题。它没有数据库名和模式名,所以不知道连接到哪里。这就是问题所在。我刚开始学泰伦德,所以我;我不知道如何“手动”添加单引号,就是这样。我刚开始学泰伦德,所以我;我不知道如何“手动”添加单个引号Talend架构中是否正确定义了row1.YYYYMMDD的数据类型?我在两个架构中都尝试了string和date。能否发布Talend作业的屏幕截图?作业和tMap:能否尝试更改tMap中列日期的DatePattern?Talend架构中是否正确定义了row1.YYYYMMDD的数据类型?我尝试了两个架构上的字符串和日期。您可以发布Talend作业的屏幕截图吗?作业和tMap:您可以尝试更改tMap中列日期的日期模式吗?
CREATE TABLE foo ( x date );
INSERT INTO foo (x) VALUES ( '20170101' );