SQL将时间转换为半小时增量并仅提取HH:MM

时间:2017-03-28 12:08:59

标签: sql

我需要显示一个报告,在24小时内以半小时为增量计算会话。我使用了以下case语句,它可以很好地转换日期字段中的分钟。

@Prompt([OK]; "CRMPath value"; CRMPath)

现在我无法拔出hh:mm。我尝试了这个,但它只给了我两个额外的列。

case when datepart (mi,"tablename.name") < 30 
then dateadd(hh, datediff(hh, 0, "tablename.name")+0, 0) else dateadd (mi, 30, 
dateadd(hh, datediff(hh, 0, "tablename.name")+0, 0)) end,

2 个答案:

答案 0 :(得分:1)

试试这个:

CAST(DATEPART(Hour,"tablename.name") as char(2)) + ':' + 
CAST(DATEPART(minute,"tablename.name") as char(2)) As Start_Time

答案 1 :(得分:1)

假设这是在T-SQL中,您可以使用format来处理字符串格式:

select format(
  dateadd(minute, round(datediff(minute, '2010-01-01', "tablename.name") / 30, 0)*30, '2010-01-01')
  , N'hh\:mm') 
      from ...

从这个answer改编了舍入到最近的间隔。