[英]How do I insert a string into date type field?
I am working with a python script that selects a data from a Postgresql DB like this.我正在使用 python 脚本,该脚本从 Postgresql 数据库中选择数据,如下所示。
SELECT * FROM table;
One of those fields is a "datetime.date" type which I formatted with:其中一个字段是我格式化的“datetime.date”类型:
data.isoformat()
So now the field should be a string that looks like this: '1900-01-01'.所以现在该字段应该是一个看起来像这样的字符串:'1900-01-01'。
After that I want to put that into an IBM AS400 DB.之后,我想将其放入 IBM AS400 DB。 The input field is a date type and when I try to do it I get this error message:输入字段是日期类型,当我尝试这样做时,我收到以下错误消息:
java.sql.SQLException: Data type mismatch.(1900-01-01) java.sql.SQLException:数据类型不匹配。(1900-01-01)
What am I doing wrong?我究竟做错了什么?
Thank you for your help.谢谢您的帮助。
Yes I am trying to insert into an AS400 DB.是的,我正在尝试插入 AS400 DB。 It's a simple Insert statement that I wrote in Python.(looks like this but a little bigger)这是我在 Python 中写的一个简单的插入语句。(看起来像这样,但有点大)
insert into table (field1, field2) values (?,?);
The values are: (Decimal('0'), '1900-01-01') The second value is a datetime.date which i formatted with isoformat().值是: (Decimal('0'), '1900-01-01') 第二个值是我用 isoformat() 格式化的 datetime.date。 And when I try to insert i get the error message above.当我尝试插入时,我收到上面的错误消息。
Edit 2:编辑2:
I am using Python.我正在使用 Python。 The code looks like this:代码如下所示:
conAS400 = jaydebeapi.connect(data)
cursAS400 = conAS400.cursor()
cursAS400.execute(sql, values)
If your date input parameter is a string, then on PostgreSQL you can use casting types, for example:如果您的日期输入参数是一个字符串,那么在 PostgreSQL 上您可以使用转换类型,例如:
insert into table1 (field1, field2) values (12, '2022-02-06'::date);
'2022-02-06' is a string parameter but ::date
converting string type to date type on PostgreSQL. '2022-02-06' 是一个字符串参数,但::date
在 PostgreSQL 上将字符串类型转换为日期类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.