繁体   English   中英

MySQL获得MAX日期

[英]MySQL get MAX date

我有一个事件表和相关的EventAddress表。 我想获取在特定日期具有最近时间且少于给定时间的事件的地址。 因此,如果今天有2个事件,一个在2 pm-3pm,另一个在5 pm-6pm,而我的下一个事件在7 pm-8pm,则我想获取结束时间早于新事件开始时间的事件。 因此,在这种情况下,我想要事件的地址是5-6pm。 希望有道理。 以下是我尝试遵循此SO职位后到目前为止所获得的内容

SELECT
  ea1.Address,
  ea1.City,
  ea1.State,
  ea1.Zip,
  e.EventEndDate
FROM EventAddress ea1
  INNER JOIN (SELECT
      Events.EventAddressId,
      MAX(Events.EventEndDate) AS maxdate
    FROM Events
    GROUP BY Events.EventAddressId) max_record
    ON max_record.EventAddressId = ea1.EventAddressId
  INNER JOIN Events e
    ON ea1.EventAddressId = e.EventAddressId
WHERE DATE(e.EventStartDate) = '2014-11-06'
AND e.FranchiseId = 1
AND TIME(e.EventEndDate) <= '18:00:00'

编辑:内部SELECT返回正确的结果,但最终结果仍返回2事件。

我认为你需要改变

WHERE DATE(e.EventStartDate) = '2014-11-06'
AND e.FranchiseId = 1
AND TIME(e.EventEndDate) <= '18:00:00'

到EventStartDate或EventEndDate。 我不确定您的数据结构如何,但我假设它类似于“ 2014-11-06 18:00:00”。 如果是这样,您将需要使用与datepart等效的mysql。

我在外部选择中添加了MAX(TIME(e.EventEndDate)) AS themax

暂无
暂无

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

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