You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3操作MySQL查询两个时间戳之间的数据无返回结果问题

问题根因

  • 日期格式不匹配:MySQL的DATE()函数返回的日期格式为YYYY-MM-DD,你调用函数时传入的日期是MM/DD/YYYY格式,二者格式不统一导致条件匹配失败,所以查询返回空结果。

解决方案

方案1:调整传参格式

直接将传入的日期参数修改为MySQL支持的YYYY-MM-DD格式,修改调用逻辑即可:

# 修改前
# print(get_payroll_payments_by_date('08/01/2021', '08/01/2021'))
# 修改后
print(get_payroll_payments_by_date('2021-08-01', '2021-08-01'))

方案2:SQL层转换日期格式

如果需要保留现有MM/DD/YYYY的传参格式,可以在查询语句中用STR_TO_DATE函数把参数转换为标准日期格式,修改后的查询函数如下:

def get_payroll_payments_by_date(start, end):
    c = create_connection()
    cur = c[0]
    db = c[1]
    cur = db.cursor() 
    cur.execute("""
        select payment from payroll 
        where DATE(payment_date) between STR_TO_DATE(%s, '%m/%d/%Y') and STR_TO_DATE(%s, '%m/%d/%Y')
        order by payment_date desc;
        """, (start, end))    
    data = cur.fetchall()    
    return data

如果修改后仍然查询不到结果,可以先执行SELECT DATE(payment_date) FROM payroll LIMIT 10查看数据库返回的日期实际格式,确认和匹配条件的格式一致即可。

内容的提问来源于stack exchange,提问作者Mike C.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 01:48:02