2016-10-18 3 views
2
with engine.connect() as con: 

    rs = con.execute(""" 
         SELECT datediff(STR_TO_DATE(CONCAT(year,'-',month,'-',day), '%Y-%m-%d') , current_date()) 
         from TABLE 
         WHERE datediff(STR_TO_DATE(CONCAT(year,'-',month,'-',day), '%Y-%m-%d') , current_date()) < 900 
         group by STR_TO_DATE(CONCAT(year,'-',month,'-',day), '%Y-%m-%d'); 
        """) 

私はコンパイラが '%Y-%m-%d'と混同していると感じます。誰かがこのエラーを回避する方法で私を助けることができる:TypeError:フォーマット文字列の引数が足りません - %Y-%mを使用しているときのPython SQL接続

Type Error:not enough arguments for format string

+0

mysqlデータベースに接続するために何を使用していますか?どのパッケージ?あなたは、あなたがあなたの質問で達成しようとしていることを説明するかもしれません。 – wwii

+0

sqlalchemyを使用し、MySQL Workbenchを使用 – ForeverLearner

答えて

3

それはあなたの%看板を見て、あなたは、文字列をフォーマットしたいと考えています。私は%%と置き換えることができると信じて、文字を必要としていることを示し、フォーマットの置換ではないことを示します。あなたは%をエスケープする必要が

+0

はい!どうもありがとう! – ForeverLearner

0

with engine.connect() as con: 

    rs = con.execute(""" 
         SELECT datediff(STR_TO_DATE(CONCAT(year,'-',month,'-',day), '%%Y-%%m-%%d') , current_date()) 
         from TABLE 
         WHERE datediff(STR_TO_DATE(CONCAT(year,'-',month,'-',day), '%%Y-%%m-%%d') , current_date()) < 900 
         group by STR_TO_DATE(CONCAT(year,'-',month,'-',day), '%%Y-%%m-%%d'); 
        """) 

%は、MySQL(ワイルドカード)の予約文字です。

+0

はい!どうもありがとう! – ForeverLearner

関連する問題