0

date_format 操作を行う次のクエリを使用しようとしていますが、プレースホルダーも使用したいと考えています。残念ながら、プレースホルダーを置き換えようとしないため、クエリは失敗します。クエリは次のとおりです。

query_with_parameters =  """select ID, IP_src, IP_dst, sum(bytes) as Total_Bytes, count(*) as total_packets,\
 ( sum(bytes) / count(*) )  as Average, date_format(date, "%H") as Hour , date_format(date, "%d %m %Y")\
  as date from Packets where date BETWEEN %s and %s group by IP_src,\
   IP_dst, Hour, date order by IP_src, IP_dst, Hour, date;"""

そして、私はそれを使用しようとしています:

cursor.execute(query_with_parameters, ('2013-06-30 00:00:00' , '2013-06-30 23:59:59'))

ライブラリとして mysqldb を使用しており、Python 2.7 を使用しています。例外は次のとおりです。

(<type 'exceptions.ValueError'>, ValueError("unsupported format character 'H' (0x48) at index 144",), <traceback object at 0x33447a0>)

何か案は?ありがとうございました

4

1 に答える 1

0

修繕

query_with_parameters =  """select ID, IP_src, IP_dst, sum(bytes) as Total_Bytes, count(*) as total_packets, ( sum(bytes) / count(*) )\
  as Average, date_format(date, "%%H") as Hour , date_format(date, "%%d %%m %%Y") as date_n from Packets\
   where date BETWEEN %s and %s group by IP_src, IP_dst, Hour,\
    date_n order by IP_src, IP_dst, Hour, date_n;"""

mysql dbの前に % を追加するだけで修正されました;)

他の人に役立つことを願っています:D

于 2013-07-11T16:15:16.847 に答える