我需要一个MySQL查询,它将选择一些包含今天日期的数据。我构建了以下查询:
SELECT CRM_TRATATIVAS.ID_Vendedor, CRM_TRATATIVAS.Fecha
FROM CRM_TRATATIVAS
GROUP BY CRM_TRATATIVAS.ID_Vendedor, CRM_TRATATIVAS.Fecha, CRM_TRATATIVAS.ID_Categoria
HAVING (((CRM_TRATATIVAS.ID_Vendedor)=10 Or (CRM_TRATATIVAS.ID_Vendedor)=29 Or (CRM_TRATATIVAS.ID_Vendedor)=32) AND ((CRM_TRATATIVAS.Fecha)=Date()) AND ((CRM_TRATATIVAS.ID_Categoria)=14));如果我把=Date()取走,它就能工作了。有什么好主意吗?
最后的数据显示是这样的东西,没有括号和点(我找不到如何做一个表!
Fecha Vendedor
2012-12-03 10:12:13 (10)
2012-12-03 12:14:16 (10)
2012-12-03 09:15:46 (29)
2012-12-03 13:35:56 (32)修好了!
我通过使用这个查询进行了修正。
SELECT CRM_TRATATIVAS.ID_Vendedor, CRM_TRATATIVAS.Fecha
FROM CRM_TRATATIVASGROUP BY CRM_TRATATIVAS.ID_Vendedor, CRM_TRATATIVAS.Fecha, CRM_TRATATIVAS.ID_Categoria
HAVING (((CRM_TRATATIVAS.ID_Vendedor)=10 Or (CRM_TRATATIVAS.ID_Vendedor)=29 Or (CRM_TRATATIVAS.ID_Vendedor)=32) AND ((DATE(CRM_TRATATIVAS.Fecha)) = CURDATE()) AND ((CRM_TRATATIVAS.ID_Categoria)=14));由于into是一个DATETIME列,所以我在引用之前添加了date,以便将其转换为日期。
发布于 2012-12-03 19:54:36
试着改变:
CRM_TRATATIVAS.Fecha=Date()在这方面:
DATE(CRM_TRATATIVAS.Fecha)=CURDATE()CURDATE()返回当前日期,DATE(Fecha)只返回Fecha的日期部分(没有小时、分钟和秒)。我还建议您以这样的方式编写查询,这看起来更干净:
SELECT Distinct
CRM_TRATATIVAS.ID_Categoria,
CRM_TRATATIVAS.ID_Vendedor,
CRM_TRATATIVAS.Fecha
FROM
CRM_TRATATIVAS
WHERE
CRM_TRATATIVAS.ID_Vendedor in (10, 29, 32)
AND DATE(CRM_TRATATIVAS.Fecha) = CURDATE()
AND CRM_TRATATIVAS.ID_Categoria=14发布于 2012-12-03 19:13:52
我想你可能需要以下几点:
SELECT c.ID_Vendedor, c.Fecha
FROM CRM_TRATATIVAS c
WHERE c.ID_Vendedor IN (10, 29, 32)
AND c.Fecha = Curdate()
AND c.ID_Categoria=14
-- GROUP BY c.ID_Vendedor, c.Fecha, c.ID_Categoria;注意:我更新了它以使用WHERE而不是HAVING子句。HAVING子句用于需要对其进行筛选的聚合函数。另外,我不知道为什么要使用GROUP BY子句,在SELECT列表中没有聚合函数。
如果您的date Fecha有日期和时间,并且只想匹配date部分,那么您可能需要使用:
SELECT c.ID_Vendedor, c.Fecha
FROM CRM_TRATATIVAS c
WHERE c.ID_Vendedor IN (10, 29, 32)
AND Date(c.Fecha) = Curdate()
AND c.ID_Categoria=14
-- GROUP BY c.ID_Vendedor, c.Fecha, c.ID_Categoria;发布于 2012-12-03 19:13:19
试着改变
((CRM_TRATATIVAS.Fecha)=Date())至
((CRM_TRATATIVAS.Fecha)=Date(NOW()))MySQL DATE()函数需要一个参数,它本身不返回当前日期。您也可以只使用CURDATE()函数而不是DATE(NOW())
https://stackoverflow.com/questions/13689978
复制相似问题