2010-03-22 96 views
2

我在SQL Server 2008下創建了一個小型數據庫。現在我想將它移動到SQL Server 2005,它不起作用,因爲它沒有Time數據類型。我必須在SQL Server 2005中存儲什麼選項。我已經編寫了小型TimeSheet應用程序,它需要編寫大部分格式爲05:30:00(hh:mm:ss)的小時和分鐘,但ss是可選的。Sql Server 2005中的Time DataType

+0

謝謝。我將不得不修復C#應用程序才能使用DateTime,或者安裝不是我最喜歡的SQL Express。 – MadBoy 2010-03-22 11:15:34

+0

我很好奇你爲什麼只想要時間。如果您需要時間之間的差異,則可以存儲整個日期和時間並使用Timespan函數。也許這不是你正在尋找的,但我不知道你想做什麼。 – DJTripleThreat 2010-03-22 11:42:14

+0

我正在儲存3小時30分鐘。我不需要日期,因爲用戶不應該把StartTime和EndTime放進去,而只是他花了一天的時間(我把日期存儲在不同的字段中)。然後我可以在Time上使用SUM()(不是真正的SUM,而是自己在SQL中創建的)。 – MadBoy 2010-03-22 11:49:10

回答

4

SQL Server 2005確實支持DATETIME數據類型,它也包含時間。僅存儲時,你可以使用CONVERT聲明:

SELECT CONVERT(DATETIME, '11:22:33') 

這不是最佳的,因爲不使用的日期部分,但是仍然佔據存儲空間。但是,再次,將數據庫降級到以前的版本永遠不會是最佳的。

2
  • 無。盒子外面。
  • 自己動手使用基於CLR的自定義類型。
  • 住在一起。

對於一個時間表,我個人不希望有一個時間字段,但存儲時間爲DateTime總是 - 使查詢更容易。

1

可悲的是,沒有Time數據類型在SQL Server 2005中我會建議做你現有的數據轉化爲您的SQL Server 2005實例是使用這樣的:

Select CONVERT(DateTime, YourDateTimeColumn, 114) AS [HH:MI:SS:MMM(24H)] 
    From YourTable 

這會給你的當前日期與現有數據的時間。在檢索數據時,您不得不以某種方式去除時間日期。這可以通過使用C#中的格式化函數來完成(或者你可能使用的任何.NET語言......假設你正在這樣做)

希望有幫助。