将多个字段的串联字符串添加到存储过程的最佳方法

时间:2011-03-04 20:32:22

标签: sql sql-server

我的数据库中有14个日期时间字段。我被要求将14个日期中的单个字段作为一个字符串字段返回。现在我的存储过程看起来有点像这样:

convert(varchar, [DTMON_F],108) as mondayFrom,
   convert(varchar,[DTMON_T],108) as mondayTo,
   convert(varchar,[DTTUES_F],108) as tuesdayFrom,
   convert(varchar,[DTTUES_T],108) as tuesdayTo,

我希望有一个名为extendedDetails的字段,格式为HHmm - HHmm,HHmm - HHmm

这将返回例如“10:20:00”,所以我不得不以某种方式将其剪切为“1020”,然后以某种方式将它们全部连接起来。

convert(varchar, [DTMON_F],108) as mondayFrom

1 个答案:

答案 0 :(得分:3)

SELECT 
  REPLACE
  ( 
   convert(char(5), [DTMON_F],108) + ' - ' +  
   convert(char(5),[DTMON_T],108) + ' - ' +
   convert(char(5),[DTTUES_F],108) + ' - ' +
   convert(char(5),[DTTUES_T],108) + ' - ' +
    ...
     , ':', '') AS whatever 
FROM MYTABLE