如何在ms sql中使用convert更改字符串?

时间:2014-05-29 06:50:48

标签: sql sql-server sql-server-2012

我有这个查询,显示一个工人一天所做的小时,分​​钟和秒数:

SELECT 
   Employee_Number, CAST([DateTime] as Date) as 'DateTime', 
   MIN([DateTime]) as 'MIN', MAX([DateTime]) as 'MAX', 
   [Hours Worked] = CAST((DATEDIFF(HOUR , min([DateTime]),  
   max([DateTime])) % 24 ) AS VARCHAR)  +':'+ CAST((DATEDIFF(MINUTE, min([DateTime]), 
   max([DateTime])) % 60) AS VARCHAR) + ':' + CAST((DATEDIFF(SECOND, min([DateTime]), 
   max([DateTime])) % 60) AS VARCHAR) + '0' from tblExtract group by Employee_Number, 
   Cast([DateTime] as Date)

我的问题是我想在hh:mm:ss中转换小时工作列。我该如何解决?

4 个答案:

答案 0 :(得分:1)

像这样使用

[Hours Worked] = CONVERT(VARCHAR(15),CAST((DATEDIFF(HOUR , min([DateTime]),108)

或只是

[Hours Worked] = CONVERT(VARCHAR(15),min([DateTime]),108)

Here是不同的格式

答案 1 :(得分:1)

尝试在工作时间的宫殿中使用它: -

[Hours Worked] = CONVERT(VARCHAR(8),DateTime,108)

希望这会对你有所帮助。

答案 2 :(得分:1)

CONVERT(NVARCHAR, MAX([DateTime]) - MIN(DateTime]), 108) AS [Hours Works]

答案 3 :(得分:1)

只需使用转换()函数,使用hh:mm:ss的模式,如下所示:

CONVERT(VARCHAR(8),DateTime,108)

列出了其他转换模式here