3

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

例如:Convert(datetime,Cast(Ap.aptApptTime as varchar(6),3)as Appt_time

这会产生正确的约会日期,但时间为 00:00:00。我需要根据“33600”之类的值显示正确的时间。

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

4

2 回答 2

2

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

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

如果秒;

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

ETC...

于 2013-01-10T15:51:00.333 回答
0

假设 33600 是秒数,你也可以试试

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

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

于 2013-01-10T16:07:27.893 回答