簡體   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