繁体   English   中英

在SQL中使用min和DATE()

[英]using min and DATE() in SQL

我正在运行一个SQL查询,我想使用min()DATE()

我试过了:

and min(DATE(datetime)) = '".date("Y-m-d")."'

但这不起作用,我应该使用什么?

我试过的完整查询是:

select 
  min(datetime) as d, 
  ticketnumber 
from ticket_updates 
where type = 'update' 
and min(DATE(datetime)) = '".date("Y-m-d")."' 
group by ticketnumber

我也尝试过:

select 
  min(datetime) as d, 
  ticketnumber 
from ticket_updates 
where type = 'update' 
and min(datetime) >= '".date("Y-m-d 00:00:00")."' 
and min(datetime) <= '".date("Y-m-d 23:59:59")."'
group by ticketnumber

但我得到一个错误说:

无效使用组功能

无需在where子句中使用min函数。

我还更改了between的可读性。

select 
  min(datetime) as d, 
  ticketnumber 
from ticket_updates 
where type = 'update' 
and datetime between'".date("Y-m-d 00:00:00")."' 
                and '".date("Y-m-d 23:59:59")."'
group by ticketnumber

该代码将在提供的日期中找到每个票证编号的最低日期/时间。

看看这个FIDDLE

如果要最早的日期时间,请使用having子句:

select min(datetime) as d, ticketnumber 
from ticket_updates 
where type = 'update' 
group by ticketnumber
having min(DATE(datetime)) = '".date("Y-m-d")."'

这些作为构造似乎很奇怪,因为分钟将获取您输入的日期。 所有工作都在过滤中。

将查询换成另一个:

SELECT d, ticketnumber FROM(
  select 
  min(datetime) as d, 
  ticketnumber 
  from ticket_updates 
  where type = 'update' 
  group by ticketnumber
) t
WHERE d between '...' and '...'

小提琴

如果要获取最小日期,则需要有一个列进行分组。 例如,

Select id, Min(Date) as Min_date
from mytable group by id

您能否提供更多详细信息,以便我们尝试解决此问题?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM