Sql 将给定分钟数转换为hh:mm:ss格式

Sql 将给定分钟数转换为hh:mm:ss格式,sql,sql-server,tsql,management-studio-express,Sql,Sql Server,Tsql,Management Studio Express,以下是我的数据库结构(简化): 我将持续时间插入为分钟,需要将其转换为hh:mm:ss格式。但是,执行此命令后,我得到了02:22:00.0000000 如何设置日期格式以仅获取02:22:00?您可以转换为时间: select convert(time, dateadd(minute, 142, 0)) 或者,如果希望将值作为字符串,可以使用老式的convert(): 但我很困惑。您将该值存储为一个带有7位小数秒的时间。然后你就抱怨看到了分数秒 分数秒可能对电影时间没有影响,所以为什么不使用

以下是我的数据库结构(简化):

我将持续时间插入为分钟,需要将其转换为
hh:mm:ss
格式。但是,执行此命令后,我得到了
02:22:00.0000000


如何设置日期格式以仅获取
02:22:00

您可以转换为时间:

select convert(time, dateadd(minute, 142, 0))
或者,如果希望将值作为字符串,可以使用老式的
convert()

但我很困惑。您将该值存储为一个带有7位小数秒的
时间
。然后你就抱怨看到了分数秒

分数秒可能对电影时间没有影响,所以为什么不使用:

Duration        time(0)         not null,

是的,实际上它不应该是时间(7)
,但在更改为时间(0)
或时间(7)后,我仍然得到7zeros@user3132457 . . . 您可以将该值转换为字符串(如第一个示例中所示),以获得所需的内容same@user3132457 . . . 使用
convert(varchar(8),duration,108)
不可能获得小数秒。选择数据时需要执行此操作,而不是插入数据时。显示用于查看数据的代码。
从[MovieDB].[dbo].[Movies]中选择TOP(1000)[MovieID],[Duration]
select convert(varchar(8), dateadd(minute, 142, 0), 108)
Duration        time(0)         not null,