首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在mysql中对两列进行计数?

如何在mysql中对两列进行计数?
EN

Stack Overflow用户
提问于 2017-06-09 02:52:03
回答 3查看 24关注 0票数 0

我想在mysql中计算两列。其中一列是字符串,另一列是类似于06/08/2017的日期,当我执行查询时,我得到0个结果。

代码语言:javascript
运行
复制
SELECT count(*) FROM `castigos` WHERE inicio_normal=05/06/2017 AND cod_emplazamiento=1

我有这些数据的条目,但它没有向我显示任何东西。也许日期中的数据类型是错误的?

我该怎么办?

EN

回答 3

Stack Overflow用户

发布于 2017-06-09 02:56:23

将日期字段添加到您的选择中,并按其分组。否则,mysql扩展无法识别您想要按日期分组,并将所有结果聚合到一列中。因为你得到的是0计数,你的where子句肯定不工作了。

您的日期格式似乎不正确。通常是YYYY/MM/DD格式(标准格式);或者使用SELECT STR_TO_DATE('17/09/2010','%d/%m/%Y');指定格式

MySQL retrieves and displays DATE values in 'YYYY-MM-DD' format. The supported range is '1000-01-01' to '9999-12-31'.

下面使用隐式转换和默认日期格式将字符串日期转换为有效日期。

代码语言:javascript
运行
复制
SELECT inicio_normal, count(*) 
FROM `castigos` 
WHERE inicio_normal='2017/05/06' 
  AND cod_emplazamiento=1 
GROUP BY inicio_normal

否则,就是在做数学运算,并将该日期与为该日期存储的数字进行比较。

了解日期应该存储在date数据类型中,当您查询日期时,您将传入一个字符串,该字符串将转换为date数据类型进行比较。因此,您需要使用标准格式,或者将字符串转换为日期,以便数据库引擎知道如何将您的格式转换为日期。

票数 0
EN

Stack Overflow用户

发布于 2017-06-09 02:56:48

试试这个:

代码语言:javascript
运行
复制
SELECT count(*) FROM `castigos` WHERE inicio_normal="05/06/2017" AND cod_emplazamiento=1 GROUP BY inicio_normal
票数 0
EN

Stack Overflow用户

发布于 2017-06-09 03:10:36

,其中inicio_normal=05/06/2017

如果你将3除以6,那么到2017年,你会得到一个非常小的值。如果您使用reformat this as a date (例如20170605,如果您给我们一个欧洲格式的日期- dd/mm/yyyy),那么您的查询将找到您向我们显示的行。

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

https://stackoverflow.com/questions/44443495

复制
相关文章

相似问题

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