日期问题 - python 到 oracle sql
Date issue - python to oracle sql
我有一个 run_dt 在创建 table 时出现问题,列数据类型自行更改为 Char。
print(execution_dt)
2020-10-05 14:24:25.352317
run_dt= execution_dt.date()
print(run_dt)
2020-10-05
run_dt=str(run_dt)
print(run_dt)
2020-10-05
type(run_dt)
<class 'str'>
我有 Oracle 数据库作为后端,python 用于脚本。
cursor.execute(f'''create table taxes
select age,
name,
'{run_dt}' as max_upload_date,
from Employee a left outer join code cd on (s.emp_id = cd.code)
and s.transaction_date = {repr(run_dt)}
''')
如果我执行上面的 python 代码,它会创建一个 table 税,但随后 max_upload_date - 列数据类型自动变为 - Char。
如果我应用 to_date 函数如下:
to_date('{run_dt}') as max_upload_date,
我收到以下错误:
错误 - cx_Oracle.DatabaseError: ORA-01861: 文字与格式字符串不匹配
请帮忙。提前致谢。
TO_DATE
应该没问题,但前提是您应用了适当的格式掩码(而不是让 Oracle 猜测要做什么;如您所见,它失败了):
to_date('2020-10-05', 'yyyy-mm-dd')
(如果那是 10
和 05
所代表的;反之亦然。我不知道,但你应该知道)
我有一个 run_dt 在创建 table 时出现问题,列数据类型自行更改为 Char。
print(execution_dt)
2020-10-05 14:24:25.352317
run_dt= execution_dt.date()
print(run_dt)
2020-10-05
run_dt=str(run_dt)
print(run_dt)
2020-10-05
type(run_dt)
<class 'str'>
我有 Oracle 数据库作为后端,python 用于脚本。
cursor.execute(f'''create table taxes
select age,
name,
'{run_dt}' as max_upload_date,
from Employee a left outer join code cd on (s.emp_id = cd.code)
and s.transaction_date = {repr(run_dt)}
''')
如果我执行上面的 python 代码,它会创建一个 table 税,但随后 max_upload_date - 列数据类型自动变为 - Char。
如果我应用 to_date 函数如下:
to_date('{run_dt}') as max_upload_date,
我收到以下错误:
错误 - cx_Oracle.DatabaseError: ORA-01861: 文字与格式字符串不匹配
请帮忙。提前致谢。
TO_DATE
应该没问题,但前提是您应用了适当的格式掩码(而不是让 Oracle 猜测要做什么;如您所见,它失败了):
to_date('2020-10-05', 'yyyy-mm-dd')
(如果那是 10
和 05
所代表的;反之亦然。我不知道,但你应该知道)