簡體   English   中英

MySQL最大(日期)不起作用

[英]mysql max(date) not working

所以我有這個查詢應該返回一些信息,例如價格,開盤價,收盤價等。

SELECT * FROM History WHERE symbol = $symbol Having max(`date`);

但是無論出於什么原因,它都沒有返回正確的信息。 由於某種原因,它認為最大日期是2013年2月14日,但是如果我查看所有數據,則最新日期實際上是2013年2月27日。 在這種情況下

$symbol = "AGNC"

max函數不能按日期使用嗎?

我想你想要這樣的東西。 我不喜歡使用ORDER BY子句來執行此操作,因為在某些情況下( 盡管很少 )記錄可能具有相同的最新date輸入。

SELECT  *
FROM    History
WHERE   symbol = $symbol AND
        date = (SELECT MAX(date) FROM History)

我的建議是完全不使用MAX 如果您只想獲取表中的最新條目,則可以嘗試:

SELECT * FROM History WHERE symbol = $symbol ORDER BY date DESC LIMIT 1;

只要您將date字段實際聲明為與日期相關的MySQL字段類型(例如datedatetime等),此方法就可以完美地工作。

正如JW在他的回答中指出的那樣,您可能希望在ORDER BY語句中添加更多字段,以消除日期完全相同的記錄的歧義。

另外,如果這是一個字符串字段( charvarchar等),則可能需要將$ symbol放在引號中:

SELECT * FROM History WHERE symbol = '$symbol' ORDER BY date DESC LIMIT 1;

干杯!

以下應該做您想要的:

SELECT *
FROM History h
WHERE symbol = $symbol and
      `date` = (select max(`date`) from History where symbol = $symbol)

您可以使用別名表名稱:

SELECT  *
FROM    History
WHERE   symbol = $symbol AND
date = (SELECT MAX(date) FROM History);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM