T-SQL:将日期时间分为日期和时间,然后转换为数字

时间:2016-06-28 15:40:47

标签: sql-server tsql

我的要求比我找到的更具体 - 我有一个存储日期时间值的表。我需要检索该值,将其分为日期和时间,然后将这两个值转换为整数值。这是我试图检索的字段:

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

是否有相对简单的方法来实现这一目标?

2 个答案:

答案 0 :(得分: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-06-28 10:45:10.017

答案 1 :(得分: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), ':', ''))