今天报告案例查询 php 的总数

发布于 2025-01-12 07:38:34 字数 277 浏览 1 评论 0原文

我有这个查询,但它仅适用于 DATE 类型。但我的列类型是 DATETIME。如何更改此查询以适用于 DATETIME 类型?我需要获得今天报告案例的输出。

SELECT COUNT(report_id) ASs total_today_case
FROM report
WHERE report_detection_date = CURRENT_DATE();

数据库结构

I've this query but it works only for DATE type. But my column type is DATETIME. How can I change this query to works on DATETIME type? I need to get output for todays report cases.

SELECT COUNT(report_id) ASs total_today_case
FROM report
WHERE report_detection_date = CURRENT_DATE();

DB Structure

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

你是暖光i 2025-01-19 07:38:34

您是否希望对表/视图上满足特定条件的项目进行计数?如果是这样,我认为数据库结构并不重要。我们需要了解您需要计算的内容和字段名称。之后,这将是一个简单的 SELECT DISTINCT COUNT(*) FROM table_abc WHERE 条件 情况。

Are you looking to count items that meet a specific condition on a table/view? If so, I don't think the db structure would matter. We'd need to understand what you need counted and the field names. After that it would be a simple SELECT DISTINCT COUNT(*) FROM table_abc WHERE condition situation.

赠意 2025-01-19 07:38:34

您可能想要格式化report_detection_date:

SELECT COUNT(report_id) as total_today_case
FROM report
WHERE DATE_FORMAT(report_detection_date, "%Y-%m-%d") = CURRENT_DATE();

You might want to format the report_detection_date:

SELECT COUNT(report_id) as total_today_case
FROM report
WHERE DATE_FORMAT(report_detection_date, "%Y-%m-%d") = CURRENT_DATE();
柠檬心 2025-01-19 07:38:34

其中report_detection_date = CURRENT_DATE();

您正在比较苹果和橙子。 CURRENT_DATE() 的时间值为“00:00:00”(午夜)。因此,它永远不会等于日期时间值,除了午夜

列值Current_Date()是否相等?
2022-03-08 00:00:002022-03-08 00:00:00
2022-03-08 08:12:142022-03-08 00:00:00
2022-03-08 14:15 :222022-03-08 00:00:00
2022-03-08 18:15:222022-03-08 00:00:00
2022-03-08 23:15:222022-03-08 00:00:00
2022- 03-08 23:59:592022-03-08 00:00:00

要保留查询 sargable,更好的方法查询日期时间字段是:

 WHERE ColumnName >= {TodaysDateAtMidnight}
 AND   ColumnName < {TomorrowsDateAtMidnight}

..或更具体地说

 WHERE ColumnName >= CURRENT_DATE() 
 AND   ColumnName < Date_Add(CURRENT_DATE(), interval 1 DAY)

where report_detection_date = CURRENT_DATE();

You're comparing apples and oranges. CURRENT_DATE() has a time value of "00:00:00" (midnight). So it never equals a date and time value, except at midnight

Column ValueCurrent_Date()Is Equal?
2022-03-08 00:00:002022-03-08 00:00:00YES
2022-03-08 08:12:142022-03-08 00:00:00NO
2022-03-08 14:15:222022-03-08 00:00:00NO
2022-03-08 18:15:222022-03-08 00:00:00NO
2022-03-08 23:15:222022-03-08 00:00:00NO
2022-03-08 23:59:592022-03-08 00:00:00NO

To keep the query sargable, the better way to query a datetime field is:

 WHERE ColumnName >= {TodaysDateAtMidnight}
 AND   ColumnName < {TomorrowsDateAtMidnight}

.. or more specifically

 WHERE ColumnName >= CURRENT_DATE() 
 AND   ColumnName < Date_Add(CURRENT_DATE(), interval 1 DAY)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文