0

time(0)在 SQL Server 数据库表中有一个列,我希望使用相同的数量创建一个新列,time(0)但转换为分钟数(varchar)(时间列给出了特定的持续时间)

我在公式部分(在 SQL Server Management Studio 中)尝试了以下命令

(CONVERT([varchar](10),[Duration],(10)))
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

有什么想法可能是错的吗?

4

2 回答 2

1

如果要添加存储分钟数的新列,请使用INT! 毕竟分钟是一个数值......

您可以使用更改脚本非常轻松地做到这一点:

ALTER TABLE dbo.YourTable
ADD TimeInMinutes AS DATEDIFF(MINUTE, 0, YourTimeColumnHere) PERSISTED

或者你也可以在视觉设计器中做到这一点,只需添加公式:

DATEDIFF(MINUTE, 0, YourTimeColumnHere) 

尝试确保将其设为持久列,以便仅在时间列更改时计算和更新它 - 而不是每次都访问它......

于 2013-09-13T09:38:07.650 回答
0

使用datediff(mi, '00:00:00', <your time>)

sql fiddle demo

于 2013-09-13T08:17:03.283 回答