我的要求比我找到的更具体 - 我有一个存储日期时间值的表。我需要检索该值,将其分为日期和时间,然后将这两个值转换为整数值。这是我试图检索的字段:
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
是否有相对简单的方法来实现这一目标?
答案 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), ':', ''))