首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MySQL存储过程中使用时间戳

问如何在MySQL存储过程中使用时间戳
EN

Stack Overflow用户
提问于 2012-07-29 19:52:40
回答 1查看 2K关注 0票数 1

我是stackoverflow的新手。另外,请原谅我的英语。

我有一个关于在MySQL存储过程中使用时间戳的问题。我使用的是Python5和MySQLdb Python模块(Python2.6版)。下面是创建我的存储过程的代码:

代码语言:javascript
复制
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时,我得到了一个错误。以下是此过程的调用:

代码语言:javascript
复制
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)我得到了这个:

代码语言:javascript
复制
time = datetime.datetime(2012, 07, 25, 8, 00, 00)
startDate = str (time)

下面是一个错误:

代码语言:javascript
复制
..._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存储过程中使用“时间戳”的例子。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-07-29 20:03:40

使用concat,您将生成一个包含DateTime文本表示形式的查询字符串,该字符串需要包含在'中。这不是正在做的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11709035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档