我想将这个查询的结果赋给一个变量,并在另一个sql查询中将该变量用作宏变量。在
第一个查询:
start_week = 201619
start_date=connection.execute("""
select min(CAST(date_id as DATE)) as start_date from date_table
where CAST(week_id as INT) = %d
"""
%(start_week))
start_date = start_date.fetchone()
此查询的结果是:(日期时间。日期时间(2017年7月2日0 0日)
第二个查询:现在我想在第二个查询中将它用作宏变量
^{pr2}$但是,我得到一个错误,例如:
DatabaseError: (cx_Oracle.DatabaseError) ORA-00936: missing expression
[SQL: '\nselect week_id as start_wk from date_dim\nwhere date_id = (datetime.datetime(2016, 7, 4, 0, 0),)\n']
如果有人教我怎么做,我会很感激的?在
谢谢!在
只需将日期时间字符串格式设置为格式:
'YYYY-M-D'
,RDBMS将其读为datetime。另外,将日期作为参数传递,而不是在SQL字符串中插值。请参阅Oracle+Python最佳实践:但是,考虑合并两个查询,而不需要中间变量,其中第一个查询成为第二个查询的
^{pr2}$WHERE
子句中的子查询:相关问题 更多 >
编程相关推荐