NameError: name 'to_date' 未定义

时间:2021-04-13 19:35:51

标签: python postgresql date psycopg2

我正在编写一个 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

非常感谢任何帮助!!

1 个答案:

答案 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