试图在MySQL查询中嵌入date_add比较

时间:2012-06-15 16:35:31

标签: mysql datetime comparison

应该是相当不言自明的;知道为什么我不能这样做:

select user_id from my_table where created_at<date_add(min(created_at), INTERVAL 1 MINUTE)

我正在尝试仅返回在最早时间戳的一分钟内创建的行。谢谢!

3 个答案:

答案 0 :(得分:1)

在处理聚合函数时,你应该使用HAVING而不是WHERE ...但是,我猜你的查询会更复杂一点:

SELECT user_id, 
       created_at, (
           SELECT DATE_ADD(MIN(created_at), INTERVAL 1 MINUTE)
           FROM my_table
       ) AS earliest
  FROM my_table t1
HAVING created_at < earliest;

这是一个SQLFiddle。 )

答案 1 :(得分:0)

试试这个:

SELECT user_id
FROM my_table
WHERE created_at < DATE_ADD((SELECT MIN(created_at) FROM my_table), INTERVAL 1 MINUTE)

答案 2 :(得分:0)

SELECT user_id FROM my_table
WHERE created_id <
(
   SELECT (min_dt + INTERVAL 1 MINUTE) mindt FROM 
   (SELECT MIN(created_id) min_dt FROM my_table) A
);