如何从列表中插入字符串值作为 Postgre table 中的日期字段,在 python 中
How to insert string values from a list as date field in Postgre table , in python
在 ipython 中,下面是我试图执行的插入语句,它 returns error:not 在字符串格式化期间转换了所有参数。请注意 order_Date 和 ship_date 是 SALES_ORDER postgre table 中的日期字段。将 %s 用于日期字段值是否正确?如果不是,如何传递正确的格式。
`''
order_table_insert = ("""INSERT INTO SALES_ORDER(
Order_ID ,
Customer_ID,
Order_Date ,
Ship_Date ,
Ship_Mode ,
Quantity ) VALUES(%s,%s,%s,%s,%s)""")
for i, row in sales_order.iterrows():
cur.execute(order_table_insert,list(row))'
'''
注意:行列表包含以下输出:
'
打印(列表(行)
['CA-2017-152156', 'CG-12520', '08-11-2017', '11-11-2017', 'Second Class', 2]
['CA-2017-152156', 'CG-12520', '08-11-2017', '11-11-2017', 'Second Class', 3]
['CA-2017-138688', 'DV-13045', '12-06-2017', '16-06-2017', 'Second Class', 2]
['US-2016-108966', 'SO-20335', '11-10-2016', '18-10-2016', 'Standard Class', 5]
'
你可以使用-
TO_DATE("11-11-2017", "DD-MM-YYYY")
将解析字符串并从第二个参数中选择格式。
因此,您的查询将是 -
INSERT INTO SALES_ORDER(Order_ID , Customer_ID, Order_Date, Ship_Date, Ship_Mode , Quantity ) VALUES(%s, TO_DATE(%s, "DD-MM-YYYY"), TO_DATE(%s, "DD-MM-YYYY"),%s,%s)
在 ipython 中,下面是我试图执行的插入语句,它 returns error:not 在字符串格式化期间转换了所有参数。请注意 order_Date 和 ship_date 是 SALES_ORDER postgre table 中的日期字段。将 %s 用于日期字段值是否正确?如果不是,如何传递正确的格式。
`''
order_table_insert = ("""INSERT INTO SALES_ORDER(
Order_ID ,
Customer_ID,
Order_Date ,
Ship_Date ,
Ship_Mode ,
Quantity ) VALUES(%s,%s,%s,%s,%s)""")
for i, row in sales_order.iterrows():
cur.execute(order_table_insert,list(row))'
'''
注意:行列表包含以下输出:
'
打印(列表(行)
['CA-2017-152156', 'CG-12520', '08-11-2017', '11-11-2017', 'Second Class', 2]
['CA-2017-152156', 'CG-12520', '08-11-2017', '11-11-2017', 'Second Class', 3]
['CA-2017-138688', 'DV-13045', '12-06-2017', '16-06-2017', 'Second Class', 2]
['US-2016-108966', 'SO-20335', '11-10-2016', '18-10-2016', 'Standard Class', 5]
'
你可以使用-
TO_DATE("11-11-2017", "DD-MM-YYYY")
将解析字符串并从第二个参数中选择格式。
因此,您的查询将是 -
INSERT INTO SALES_ORDER(Order_ID , Customer_ID, Order_Date, Ship_Date, Ship_Mode , Quantity ) VALUES(%s, TO_DATE(%s, "DD-MM-YYYY"), TO_DATE(%s, "DD-MM-YYYY"),%s,%s)