sql - 如何在 SQL Server 中存储超过 24 小时的时间
问题描述
我的问题是 SQL Server 中的哪种数据类型适合 24 小时以上的时间?Time
微软所说的数据类型少于 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')
)
这是一个 db<>fiddle。
您甚至可以将其作为计算列添加到表中,因此字符串表示始终可用。
推荐阅读
- python - Cygwin:无法从本地目录安装 paramiko
- amazon-web-services - 我的基于 Cognito 的应用程序如何确定登录用户应该可以使用哪个 UI?
- ignite - 找不到 JDBC 的类“IgniteJdbcThinDataSource”
- sqlalchemy - sqlalchemy load_only 列并使用标签重命名列名
- apache - Apache 代理背后的 Traefik
- c# - IISExpress 对数据库连接的限制
- android - Firebase 推送通知无需单击即可打开活动
- c++ - 为什么 return 语句和 print 语句返回不同的答案?
- pine-script - 在 Pinescript Strategy tester 中分别跟踪 LONG 和 SHORT 利润?
- flutter - Flutter 禁用标签栏项目