2016-06-28 14 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

相关问题