2010-05-11 60 views
3

我有一個表需要存儲時間段,比如上午10:00,上午10:15 ....等等,等於等間隔15分鐘SQL Server中上午10:00的數據類型

我想知道是否有這種類型的數據隨時可用的數據類型?

我需要將它們存儲爲11:00 AM PST,11:15 AM PST,11:30 AM PST,下午11:45 PST,12:00 PM PST,12:15 PM PST,PST 12:30 ,12:45 PM PST,下午一時PST .....等

此外,在未來,如果企業的要求是20分鐘的間隔,我應該能夠很容易地改變它。

感謝

回答

3

有一個time數據類型可以使用(SQL Server 2008中)。

CREATE TABLE Table1 (Column1 time(7)) 

範圍是:

00:00:00.0000000至23:59:59.9999999

可以使用CHECK CONSTRAINT以確保分鐘部分中的一個(0, 15, 30, 45 )。

+0

是否有可能得到的15分鐘間隔不變,如果我們指定的開始時間? – Rita 2010-05-11 19:50:08

+1

我認爲這將是更好的方式。如果在路上行駛,您的要求會發生變化並且需要更小的間隔,您可以更改限制。 – Timothy 2010-05-11 19:54:59

+1

@Rita - 這取決於你。檢查約束相當靈活 - 您需要決定如何定義它們。 – Oded 2010-05-11 19:58:26

3

您可以使用Time數據類型。

如果這是矯枉過正,你因爲你只需要間隔存儲在分鐘的級別,你可以在幾分鐘存儲自午夜起,範圍0-1339之內。

你甚至可以考慮將15分鐘的間隔數自午夜起,這樣2:00 AM82:15 AM9(但除非你能爲這樣的列認爲一個偉大的名字的,它不會是很清楚)。

1

如果你想約束一個time到15分鐘的時間間隔,最簡單的方法就是將它存儲在約0-100之間的int(某些夏令時有25個小時),並計算何時確切的時間是如果你需要它。我已經在一些大型應用程序中使用過,比如天氣預報數據,它工作得很好。

+0

請您詳細說明一下嗎?我需要在PST上午11點,上午11點15分,上午11點30分,下午11點45分,太平洋標準時間下午12點,太平洋標準時間下午12:15,太平洋標準時間下午12點30分, PM PST,01:00 PM PST .....等 同樣在未來,如果業務需求是20分鐘的時間間隔,我應該可以輕鬆地進行更改。 – Rita 2010-05-11 19:58:30

+0

午夜將是'0',上午12:15將是'1'等。日期和時區將存儲在單獨的字段中。傑夫編輯了他的回覆,基本上是複製我的。 – 2010-05-11 20:07:01

+0

它通常看起來像有人已經複製了你的答案 - 不幸的是,StackOverflow沒有顯示修訂歷史記錄的前五分鐘,我認爲這將證明在這裏沒有發生(你在我後面約四分鐘發佈,所以有關於一分鐘的餘地)。我甚至沒有看到你的答案,直到我發現你指責我剽竊你,如果你刪除了你的指控,我會很感激,在這種情況下,我也會刪除它。 – 2010-05-11 22:25:00