如何在SQL Server中存储超过24小时的时间

如何在SQL Server中存储超过24小时的时间,sql,sql-server,database,sqldatatypes,Sql,Sql Server,Database,Sqldatatypes,我的问题是SQL Server中哪种数据类型适合24小时以上的时间时间数据类型,如Microsoft所说,不超过24小时: Range 00:00:00.0000000 through 23:59:59.9999999 (00:00:00.000 through 23:59:59.999 for Informatica) 因此,例如,如果我有课程表,并且某些课程的持续时间超过24小时,我应该怎么做?如果您愿意,以秒(或分钟)表示课程持续时间。如果要将值表示为HH:MM:SS,则会有点棘手

我的问题是SQL Server中哪种数据类型适合24小时以上的时间<代码>时间数据类型,如Microsoft所说,不超过24小时:

Range   00:00:00.0000000 through 23:59:59.9999999 
(00:00:00.000 through 23:59:59.999 for Informatica)

因此,例如,如果我有课程表,并且某些课程的持续时间超过24小时,我应该怎么做?

如果您愿意,以秒(或分钟)表示课程持续时间。如果要将值表示为HH:MM:SS,则会有点棘手,但可以将其拼凑在一起:

select concat(dur / (60 * 60), ':',
              format((dur / 60) % 60, '00'), ':',
              format(dur % 60, '00')
             )
他是一把小提琴


您甚至可以将其作为计算列添加到表中,因此字符串表示始终可用。

这是否回答了您的问题<代码>时间的设计更多的是只存储一个时间,而不是一段时间。如果要存储持续时间的详细信息,最好存储一个数字值,详细说明需要多少最小分母(即秒)或开始和结束时间。