SQL查询问题,用于从datetime获取单个日期或日期范围内的详细信息

时间:2019-10-16 10:54:04

标签: mysql sql

我拥有的sql查询是:

Select count(cf_1519) as service_up,createdtime
from  vtiger_ticketcf,vtiger_crmentity
Where date(createdtime)=date(now()) and 
      vtiger_ticketcf.cf_1519 like 'service up%' and 
      vtiger_crmentity.crmid = vtiger_ticketcf.ticketid"

结果为

enter image description here

再次

如果我想通过查询搜索结果个性化

Select count(cf_1519) as service_up,createdtime
from  vtiger_ticketcf,vtiger_crmentity
Where date(createdtime)= '16/10/2019%' and
      vtiger_ticketcf.cf_1519 like 'service up%' and 
      vtiger_crmentity.crmid = vtiger_ticketcf.ticketid"

结果与之前的结果不同:

enter image description here

我只想按日期或日期范围通过单个搜索得到结果,我不需要时间 需要在sql代码中进行哪些更改?

1 个答案:

答案 0 :(得分:0)

您的第二个查询应更像这样:

select count(cf_1519) as service_up, max(createdtime)
from  vtiger_ticketcf t join
      vtiger_crmentity c
      on c.crmid = t.ticketid
Where date(createdtime) = '2019-10-16' and
      t.cf_1519 like 'service up%';

注意:

  • 您有一个聚合查询(由于count(),但有多余的列。所有列都应聚合,除了group by中的列(没有列)。
  • 从不from子句中使用逗号。 始终使用正确的,明确的,标准 JOIN语法。
  • 您似乎想在日期上使用字符串函数。我从未见过带有百分号的日期。
  • 在日期/时间值上使用正确的日期/时间函数,而不是字符串函数。