duancai1904 2011-10-07 15:06
浏览 300
已采纳

这样写的MySQL函数输出什么?

I've ordered a project from a developer, and I'm trying to fix the errors I find along the way.

One is a MySQL query with the DATE_FORMAT() function, that makes the query not return anything.

SELECT * FROM food_cart 
WHERE cart_userId='3' 
AND cart_itemId='8' 
AND date_format(cart_date,'%Y-%m-%d %H')='".date("Y-m-d")."'

The code seems to be correctly formatted, as it does not return an error when executed in phpMyAdmin. It does however, not return anything.

The table looks like this:

enter image description here

I think it is supposed to try to look at just the date (i.e. 2011-10-07) and not the exact time, as it is not relevant for the query. I'm just a beginner at MySQL and I'm not quite sure what I'm doing here.

Any help appreciated!

Mike.

  • 写回答

5条回答 默认 最新

  • dongqiaogouk86049 2011-10-08 12:26
    关注

    As requested, here's my version of Johan's answer:

    $date = date( "Y-m-d", $timestamp );
    $sql = "SELECT * FROM food_cart
            WHERE cart_userId = '3' 
              AND cart_itemId = '8' 
              AND cart_date >= '$date'
              AND cart_date < '$date' + INTERVAL 1 DAY"; 
    

    This query will

    • make full use of an index on cart_date,
    • make full use of the query cache, and
    • return exactly those rows for which the date part of cart_date equals $date.
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器