Sql-Server
以 hhmmssff 格式提取 Datetime2(7) 的時間部分
我需要以 hhmmssfff 格式提取 datetime2(7) 列的時間部分,我這樣做是這樣的:
DECLARE @mdate AS DATETIME2(7) SET @mdate = '2012-03-15 10:13:27.5437431' SELECT LEFT(REPLACE(REPLACE(CONVERT(VARCHAR ,@mdate ,114),':',''),'.',''),9)
有沒有比做這個醜陋的替換/轉換/離開更好的方法?
我需要這個來加入一個 DimTime 維度,其鍵是 hhmmssfff 格式。
- 請不要使用
varchar
沒有長度。- 請使用分號作為語句終止符。
- 我認為沒有更隱蔽的方法可以做到這一點。這是我的做法(短 14 個字元,忽略分號):
DECLARE @mdate AS DATETIME2(7); SET @mdate = '2012-03-15 10:13:27.5437431'; SELECT REPLACE(REPLACE(CONVERT(TIME(3),@mdate),'.',''),':','');