2011-09-14 31 views
2

先生在我的數據庫表中的某些地方我在那個地方使用datetime數據類型我需要明確地設置特定的時間,所以在那個時候,由於日期時間變量它採用默認值的日期和追加到用戶定義的時間可以請你建議任何答案。日期時間只有時間是由用戶硬編碼

declare @u as datetime 
set @u=cast('6:00PM' As DATETIME) 
select @u 

現在我不想默認的日期1900-01-01 18:00:00.000,這裏的默認日期爲1900-01-01 我需要輸出像18:00:00.000

+0

您正在使用什麼數據庫版本? – Oded

+3

它是什麼版本的SQL Server?如果您使用的是SQL Server 2008,則可以使用新的數據類型['time'](http://msdn.microsoft.com/zh-cn/library/bb677243.aspx)。 – shahkalpesh

+0

@shahkalpesh我正在使用SQL Server 2008,但我不想使用時間數據類型 – Utsav

回答

1
declare @u as datetime 
set @u=cast('6:00PM' As DATETIME) 
select convert(varchar(12), @u, 114) 
+0

先生,現在你檢查這個代碼,當我試圖將其再次分配給@s變量時,它顯示默認日期聲明@u作爲日期時間,@ s作爲日期時間 set @ u = cast('6:00 PM'作爲DATETIME) set @ s = convert (varchar(12),@u,114) print @s – Utsav

+0

@Utsav - 是的。這是可以預料的。日期時間變量將始終具有日期部分以及時間部分。如果你只想要時間部分,你需要使用'varchar'或'time'數據類型。 –

0

試用[TIMEDIFF()][1]

SELECT TIMEDIFF('1900:01:01 18:00:00.100','1900:01:01 00:00:00.000'); 

Result: 
18:00:00.100000 
+0

感謝它的工作 – Utsav

相關問題