私はstackoverflowの初心者です。また、私の英語を許してください。
MySQLストアドプロシージャでのタイムスタンプの使用について質問があります。MySQL5とMySQLdbPythonモジュール(Pythonバージョン2.6)を使用しています。ストアドプロシージャを作成するためのコードは次のとおりです。
def create_procedure_sum_shift ():
global cursor
cursor.execute("CREATE PROCEDURE `sum_shift`\
(IN s_Time DATETIME, IN e_Time DATETIME)\
BEGIN\
SET @q = concat('SELECT * FROM trig_test WHERE `t_stamp`>=',\
s_Time,' AND `t_stamp` <= ', e_Time);\
PREPARE query FROM @q;\
EXECUTE query;\
deallocate prepare query;\
END;")
このprocを作成しようとすると、すべて問題ありません。しかし、このprocを呼び出すと、エラーが発生します。この手順の呼び出しは次のとおりです。
def call_sum_shift(startDate, endDate):
global cursor
cursor.execute("call sum_shift(DATE('%s'),DATE('%s'));" % (startDate, endDate))
rows = cursor.fetchall()
discr = cursor.description
return rows,discr
startDate(およびendDate)私はこれを取得します:
time = datetime.datetime(2012, 07, 25, 8, 00, 00)
startDate = str (time)
エラーは次のとおりです。
..._mysql_exceptions.ProgrammingError:(1064,"You have an error...for the right syntax to use near '00:00:00 AND `t_stamp` <= 2012-07-25 00:00:00` at line 1)
私の間違いはどこにありますか?可能であれば、MySQLストアドプロシージャで「タイムスタンプ」を使用する例を挙げてください。
前もって感謝します。