如何转换用作时间的5位INT并在SQL中将其显示为HH:MM:SS

时间:2013-01-10 15:46:15

标签: sql-server-2008

我正在进行数据查询,其中一个字段的时间格式为“33600”,是一种数据类型(INT)。我需要知道如何转换字段,以便它显示正确的时间格式HH:MM:SS。我使用的当前查询给出了日期/时间MM / DD / YYYY:00:00:00。

Ex:转换(datetime,Cast(Ap.aptApptTime as varchar(6),3)为Appt_time

这会生成正确的约会日期,但会给出00:00:00。我需要根据像'33600'这样的值显示正确的时间。

对此的任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

如果33600是毫秒数,这应该可以。

DECLARE @Var TIME = '00:00'
SELECT DATEADD(MS, 33600, @Var)

如果是秒;

DECLARE @Var TIME = '00:00'
SELECT DATEADD(S, 33600, @Var)

等等...

答案 1 :(得分:0)

假设33600是秒数,您也可以尝试

Cast(Cast((33600/86400.0) as smalldatetime) as time)

86400.0是一天中的总秒数。不要忘记“.0”或SQL会将其视为整数,结果将始终为零或午夜。您也无法直接从数字转换为时间字段,因此您必须使用中间smalldatetime字段。