我正在运行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
但我收到错误说:
无效使用群组功能
答案 0 :(得分:1)
您无需在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
答案 1 :(得分:1)
如果您想要最早的日期时间,请使用having
子句:
select min(datetime) as d, ticketnumber
from ticket_updates
where type = 'update'
group by ticketnumber
having min(DATE(datetime)) = '".date("Y-m-d")."'
这些作为构造看起来很奇怪,因为min会得到你输入的日期。所有工作都在过滤中。
答案 2 :(得分:0)
将您的查询包裹到另一个:
SELECT d, ticketnumber FROM(
select
min(datetime) as d,
ticketnumber
from ticket_updates
where type = 'update'
group by ticketnumber
) t
WHERE d between '...' and '...'
答案 3 :(得分:-1)
如果您想获得最短约会日期,则需要有一列分组。例如,
Select id, Min(Date) as Min_date
from mytable group by id
您能提供更多详细信息,以便我们可以尝试解决此问题吗?