2013-10-22 48 views

回答

4

你可以嘗試這樣的: -

sel * from table A 
where date = date '2013-10-22'; 

由於ANSI標準格式(必須以關鍵字日期之後)

退房this

+0

這也很有用。謝謝 – RRR

+0

@RRR: - 不客氣。如果這有助於你,請接受這個答案! –

+0

我能否也知道如何僅使用時間戳中的日期進行分組? – RRR

0

事情是這樣的:

where YourTimestampField >= {d '2013-10-22'} 
and YourTimestampField < {d '2013-10-23'} 
+0

謝謝,這工作正常。 – RRR

+0

如果我想根據時間戳列進行分組,只能使用日期。例如:當我通過createddate執行分組時,它會分別給出所有記錄,因爲每個值中的時間都不相同。我想將所有相似的日期組合在一起,而不考慮時間戳字段中的時間 – RRR

0

更正式的:

select * 
from table A 
where cast(timestamp_column as date) = date '2013-10-22'; 

我猜你只是在展示一個例子,因爲我不認爲你可以有一個名爲date的列;這是一個保留字。上面的關鍵字「date」是您如何具體指定ANSI日期常數並且與「日期」功能無關。

+0

意想不到的是:你甚至不需要做CAST。當時間戳與日期比較時,它會自動轉換爲日期。我不知道這是否基於標準SQL,但是當我調查了一個應該找到的錯誤時,我發現在手冊中定義了這個錯誤。 – dnoeth

+0

在where子句中使用函數會降低生產速度。如果您將該功能應用於索引字段,這會被放大。 –

+0

@dnoeth是的,我有點記住,但我討厭編寫使用默認轉換的代碼。爲什麼我總是在日期字符串前使用'date'修飾符。它並不是真的需要,但是它讓我更清楚發生了什麼事情。 – BellevueBob