我正在编写一个 Python 脚本来在 PostgreSQL 11.0 表中插入值。该列包含格式为 MonthYear 的日期信息(例如 May2016)。
我在代码中使用以下行插入值。
q2 = """insert into %s.test_trial2enrollment_1 (trial_id, enrollment, enrollment_type, primary_completion_date, primary_completion_type, study_completion_date, study_completion_type, study_start, last_version_checked)
values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s');""" % (staging_schema, id_ ,enr_val, enr_type, to_date(prm_val, 'MonYYYY'), prm_type, to_date(end_val, 'MonYYYY'), end_type, sta, str(clinical_trial_version - 1))
cur.execute(q2)
我收到以下错误
NameError: name 'to_date' is not defined
如何插入具有以下格式的日期值。
May2016
Nov2018
Mar2020
非常感谢任何帮助!!
答案 0 :(得分:2)
要做到这一点:
q2 = """insert into %s.test_trial2enrollment_1 (trial_id, enrollment, enrollment_type, primary_completion_date, primary_completion_type, study_completion_date, study_completion_type, study_start, last_version_checked)
values (%s, %s, %s, %s, to_date(%s, 'MonYYYY'), %s, to_date(%s, 'MonYYYY'), %s, %s)"""
cur.execute(q2, [staging_schema, id_ ,enr_val, enr_type, prm_val, prm_type, end_val, end_type, sta, str(clinical_trial_version - 1)])
此处为每个文档:
将参数传递给 SQL 查询 https://www.psycopg.org/docs/usage.html#passing-parameters-to-sql-queries