【问题标题】:Concatenating two TIME columns in SQL Server 2012在 SQL Server 2012 中连接两个 TIME 列
【发布时间】:2013-12-04 04:52:22
【问题描述】:

我想连接两个TIME 列并显示为一列。

例子:

  • 从时间:9:00
  • 到时间:12:00

结果应该是:

9:00-12:00

【问题讨论】:

  • 'fromtime','totime'的数据类型是什么
  • 什么 RDBMS ?这是给的吗?

标签: sql .net sql-server-2012


【解决方案1】:

通用 SQL:

-- hh:mm:ss
SELECT 'result:' + CONVERT(CHAR(6), FromTime, 8) + '-' + CONVERT(CHAR(6), ToTime)
    FROM yourTable 

MySQL:

-- hh:mm
SELECT 'result:' + DATE_FORMAT(FromTime, '%H:%i') + '-' + DATE_FORMAT(ToTime, '%H:%i')
    FROM yourTable

SQL 服务器:

-- hh:mm
SELECT 'result:' + convert(char(2), DATEPART(hh, FromTime)) + ':' + 
    CONVERT(CHAR(2), DATEPART(mm, FromTime)) + '-' +
    CONVERT(CHAR(2), DATEPART(hh, ToTime)) + ':' + 
    CONVERT(CHAR(2), DATEPART(mm, ToTime))
    FROM yourTable 

【讨论】:

  • +1 for the generic sql 当 OP 不提及 RDBMS 时我可以使用的最好的
【解决方案2】:
declare @FromTime time  
declare @ToTime time

set @FromTime='9:00'
set @ToTime='12:00'


select cast(@FromTime as varchar(10))+ '-' + cast(@ToTime as varchar(10)) as result 

sql demo

【讨论】:

    【解决方案3】:

    你可以使用convert

    select convert(VARCHAR(5),getdate(),108) + ' - ' + convert(VARCHAR(5),getdate()-1,108)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-10
      • 2014-03-16
      • 1970-01-01
      • 1970-01-01
      • 2016-03-25
      • 2014-05-11
      • 1970-01-01
      相关资源
      最近更新 更多