2009-02-18 193 views
2

我有一個數據庫表。它有幾百個條目,每個條目都有時間戳。我期待着只輸出每一天,而不是任何日子重複。從結果中計算日期的最佳方法是什麼?

數據:
2009-02-04 6點20分27秒
2009-02-04 6點20分27秒
2009-02-05 6點20分27秒
2009-02-07 06 :20:27
2009-02-07六點20分27秒
2009-02-07六點20分27秒

輸出應該只(時間無關):
2009-02-04 06 :20:27
2009-02-05 06:20:27
2009-02-07 06:20:27

完成此操作的最佳方法是什麼?我真的應該騎自行車穿過每一排,然後比較一下嗎?看起來效率不高。任何想法/提示?

回答

1

你會想這樣做就使用mysql DISTINCT關鍵字數據庫級別:

SELECT DISTINCT date 
FROM table 

這將使它所以如果有重複的日期,只返回一個。詳細瞭解它here

+0

有效,但不會忽略日期時間字段中的時間。 – Suroot 2009-02-18 05:11:32

+0

它對樣本數據有效,因爲每個條目都具有相同的時間值。如果有任何不同的時間分量,那麼它會產生錯誤的結果。 – 2009-02-18 05:45:21

4

你不能只在查詢中選擇「DISTINCT」時間戳嗎?

或者如果每天的時間不同(您的示例中不確定),您可以使用mysql DATE函數將timestamp列轉換爲僅僅飛行的日期。請記住,這可能會阻止索引在該列上使用時使用。

例如。

SELECT DISTINCT DATE(timestamp_column) FROM table 

這將刪除時間戳的時間部分。

1

這將打印出雙倍的時間戳,但應該僅與日期不同。

SELECT DISTINCT CAST(timestamp AS DATE), timestamp, FROM table. 
0

DATE()函數將從日期時間字段中提取日期。你可以使用它的結果進行分組。使用這樣的:

SELECT fields FROM table WHERE condition GROUP BY DATE(datefield) 
1
SELECT DISTINCT CAST(data AS DATE) 
    FROM DataTable; 

這個下降的時間部分,然後給出唯一DATE值。

相關問題