2010-10-11 15 views
2

我需要在一天中對查詢進行分組,但日期存儲的時間很長,我如何使用SQL進行操作?如何將日期存儲爲長期的日期進行分組?

我需要這個跨多個供應商 - oracle,db2,sql-server & mysql。

long是毫秒,由java.util.Date.getTime()生成 - 我無法更改。

+0

您正在使用哪種RDBMS,您可以舉個例子嗎? – Benoit 2010-10-11 08:47:04

+4

如何將長值映射到日期?自世紀以來的毫秒數?有些不同? – spender 2010-10-11 08:48:57

+0

@spender,我只是咯咯地笑。 – Marko 2010-10-11 08:54:58

回答

7

將日期列除以每天的基準時間單位數,向下舍入。例如,如果您的基本單位是秒,則必須將日期列除以24 * 60 * 60 = 86400。使用組中的結果值。

請注意,如果您的時間源與天文時間同步(例如,您的系統時鐘與NTP同步),則這會失敗,因爲在這種情況下,每隔幾年增加一次閏秒。如果情況如此(通常是這樣),並且您必須確保結果是確切的,那麼您必須將日期列轉換爲字符串或數據庫支持的日期格式。

這可能意味着要添加另一列或視圖。

+0

+1爲精確觀察天文時間! – spender 2010-10-11 09:05:44

相關問題