SqlDbType.Time 溢出。值超出范围

标签 sql sql-server sql-server-2008 c#-4.0 c#-3.0

我想将时间存储在表中,并将 time(7) 作为存储时间的数据类型。当我减去两个 DateTime 时,我的 "1.18:36:36.7484253" 变量得到了 TimeSpan 作为结果。但问题是当我在我的表中插入这个值时,我收到了这个错误:

SqlDbType.Time overflow. Value '1.18:36:36.7484253' is out of range. Must be between 00:00:00.0000000 and 23:59:59.9999999.



我知道这个错误,我的问题是我可以使用什么数据类型。我正在使用 SQL Server 2008 和 C#。

最佳答案

SQL Server 存储没有天的时间。有效范围应在消息中的 00:00:00.000000023:59:59.9999999 之间。

为了节省时间,您可以将 TimeSpan 转换为 Long 到方法 Ticks 或将分钟和秒相加。

关于SqlDbType.Time 溢出。值超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32919654/

相关文章:

sql-server - TSQ : Looking for guideline around indexing relatively small temporary tables

sql-server-2008 - Reporting Services-报表之间的部署和全局/共享配置

sql-server - 如何使用 T-SQL 将两个整数相除得到浮点结果?

MYSQL INNER JOIN FUNCTION ERROR SELECT 列表的表达式 #2 不在 GROUP BY 子句中

mysql - 在一个 INSERT..SELECT 查询中进行两次插入

mysql - 与截断语句的标准定义混淆

SQL 分组/契约(Contract)值

SQL 服务器 : backup all databases

sql - 如何在cosmos DB中实现复杂的SQL语句,例如JOIN IN和GROUP BY

mysql - 在MySQL中计算上午6点之前和晚上10点之后的时间差