我有一個MySQL問題。我有一個包含三列的表:'salesdate'(包含日期),'salestime'(包含時間)和'剩餘'(包含整數)。該表包含過去和未來的日期。我想從最接近當前日期和時間的「剩餘」中選擇一個值。MySql查詢子集
我已經構建了下面的查詢,但它只能選擇日期和時間值均爲真的值。這可能會產生錯誤的結果,因爲在'salesdate'中可能有昨天日期的行,但所有'salestime'值都大於當前時間 - 所以我當前的查詢將忽略這些...即使它們是最接近的到當前日期/時間。
我當前的查詢:
$result = mysql_query(
"SELECT remaining
FROM quantity_time
WHERE salesdate<=CURDATE()
AND salestime<=CURTIME()
ORDER BY salesdate DESC
LIMIT 1 ");
我想我需要做的是對的日期查詢,然後再以某種方式過濾該列表顯示的日期/時間最接近當前時間?但是如何?如果你可以幫忙 - 我已經搜索並找不到一個清晰的,一步一步的方式來做到這一點。非常感謝您的幫助。
嗨。謝謝你的分析。時間和日期確實指的是同一個事件。銷售日期+時間包括未來日期(按照我的描述「該表包含過去和未來日期」)。標籤可能有點混亂,因爲這不是股票/交易表。我按上述方式運行查詢,並返回最舊的記錄,但當更改爲ASC時,它返回了今天的最後一個記錄 - 但這是未來的時間。任何方式不包括未來的時間?如果我使用日期時間字段,那麼我將如何做查詢? – Zander
更改日期和時間字段成爲一個時間字段如你所說,使用下面的查詢似乎返回正確的值: $結果= mysql_query( \t「選擇剩餘 \t FROM quantity_time \t WHERE日期時間<= NOW () \t限制1 \t「); – Zander
對不起,關於ASC/DESC的事情 - 這裏遲到了。爲了省略未來的東西,添加一個WHERE TIMESTAMP(saelesdate,salestime)
symcbean