2016-06-28 35 views
0

我的需求比我發現的更具體 - 我有一個存儲日期時間值的表。我需要檢索該值,將其分隔爲日期和時間,然後將這兩個值轉換爲整數值。這是場我試圖檢索:T-SQL:將日期時間分隔爲日期和時間,然後轉換爲數字

release_date = 2016-06-28 07:04:17.960 

這需要被拆分,像這樣:

--numeric date as yyyymmdd from above value would be: 
@my_numeric_date = 20160628 

--numeric time as hhmmss from above value would be: 
@my_numeric_time = 70417 

是否有實現這一目標的一個相對簡單的方法是什麼?

+1

你確定這是你想要做的嗎?將它轉換回DT會很煩人,如果你想要一個INT,我會考慮使用POSIX – scsimon

回答

1

上次我需要這個,我用這兩個語句:

CONVERT(INTEGER, CONVERT(VARCHAR, release_date, 112)), 
CONVERT(INTEGER, REPLACE(CONVERT(VARCHAR, release_date, 108), ':', '')) 

因此,爲了節省它在變量使用:

SELECT 
@my_numeric_date = CONVERT(INTEGER, CONVERT(VARCHAR, release_date, 112)), 
@my_numeric_time = CONVERT(INTEGER, REPLACE(CONVERT(VARCHAR, release_date, 108), ':', '')) 
+0

plus-1以來的秒數,我將撤回我的回答 –

+0

@R。 Horber - 這就像一個魅力! –

1
Declare @Date DateTime = GetDate() 

Select DateInt = (Year(@Date)*10000)+(Month(@Date)*100)+Day(@Date) 
     ,TimeInt = (DatePart(HH,@Date)*10000)+(DatePart(MINUTE,@Date)*100)+DatePart(SECOND,@Date) 

返回

DateInt  TimeInt 
20160628 104510 

- 日期時間爲2016年6月28日10:45:10.017