C# 在数据网格视图中将值从long转换为TimeSpan(带SQL Server的C)
我在学校的项目上遇到了问题。我有一个SQL Server表,其中保存了以分钟表示的航班持续时间,并将其保存在bigint列中的ticks中 在这个程序中,我有一个datagridview,从SQL Server表中加载所有数据,现在我需要将flight duration列从ticks转换为类似HH:mm格式的时间,但我不知道如何实现这一点 我当前用于转换列的代码如下所示,但第三行给出了将“object”转换为“long”的错误信息C# 在数据网格视图中将值从long转换为TimeSpan(带SQL Server的C),c#,sql-server,object,datagridview,long-integer,C#,Sql Server,Object,Datagridview,Long Integer,我在学校的项目上遇到了问题。我有一个SQL Server表,其中保存了以分钟表示的航班持续时间,并将其保存在bigint列中的ticks中 在这个程序中,我有一个datagridview,从SQL Server表中加载所有数据,现在我需要将flight duration列从ticks转换为类似HH:mm格式的时间,但我不知道如何实现这一点 我当前用于转换列的代码如下所示,但第三行给出了将“object”转换为“long”的错误信息 for (int i = 0; i < dgvTabla.
for (int i = 0; i < dgvTabla.RowCount; i++)
{
var dt = new DateTime(dgvTabla[5, i].Value);
string.Format("HH:mm", dt);
dgvTabla[5, i].Value = dt;
}
有什么想法吗?谢谢 如果要在SQL Server端转换持续时间 范例 返回
您可以从Sql Server调用,并将其直接显示到网格。这样做会更容易。下面是一个例子
DECLARE @Time INT = 90
SELECT substring(CONVERT(char(8), DATEADD(MINUTE, @Time, ''), 108),0,6)
希望能有帮助。我迟到了,但连约翰·卡佩莱蒂也回答了。
ID duration AsTime AsString
1 600 10:00:00.0000000 10:00
2 1365 22:45:00.0000000 22:45
DECLARE @Time INT = 90
SELECT substring(CONVERT(char(8), DATEADD(MINUTE, @Time, ''), 108),0,6)