編輯:我一直盯着屏幕太長,意識到我實際上放下了6點(18)而不是4點(16)像我需要的。我有一行匹配18,這就是爲什麼只有一行不斷返回。從技術上講,如果我將其更改爲16,我的代碼就可以工作,但@Gordon Linoff的答案比JOIN快得多。我的發言需要0.33秒才能返回,而戈登的發言需要0.0003秒。什麼SQL語句將返回匹配日期和日期時間的行?
我有三個表,我想通過兩個日期時間列和日期列來匹配行。我現在的SQL命令如下:
SELECT puyforecast.timestamp, tacforecast.timestamp, date
FROM puyforecast, tacforecast, stnrain
WHERE puyforecast.timestamp LIKE CONCAT(date, ' 18:%')
AND tacforecast.timestamp LIKE CONCAT(date, ' 18:%');
此拉起只有第一個匹配行: 2013-01-28 18:37:33, 2013-01-28 18:37:34, 2013-01-28
這是我將從聲明期望。我希望看到所有行都有匹配的date
和datetime
郵票。從puyforecast
和tacforecast
這兩個時間戳應該只是時間在18:00(下午4點)的行。在比較datetimes
時,我不在乎幾分鐘或幾秒鐘,所以這些不應該對匹配產生影響。
我應該看到一個條目,像這樣:
2013-01-28 18:37:33, 2013-01-28 18:37:34, 2013-01-28
2013-01-29 18:00:02, 2013-01-29 18:00:34, 2013-01-29
2013-01-30 18:00:02, 2013-01-30 18:00:34, 2013-01-30
...
和& C,與日期匹配回事,直到當前的日期。兩列datetime
列的時間比date
列的時間要長。
我一直在嘗試一些搜索,但我似乎無法找到它正在尋找什麼。
你應該試圖通過一個適當的連接來實現這一點(語法從1996年開始!) – Bohemian 2013-02-19 23:32:24
@Bohemian現在我看起來像一個SQL新手。 :)我在SO上發佈了另一個SQL問題,勝利的答案是JOIN。我想這就是我可以重新開始搜索的地方。 – qmoog 2013-02-20 00:22:15