我正在进行数据查询,其中一个字段的时间格式为“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'这样的值显示正确的时间。
对此的任何帮助将不胜感激。
答案 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字段。