在数据网格视图中将值从 long 转换为 TimeSpan(C# with SQL Server)
Converting values from long to TimeSpan in data grid view (C# with SQL Server)
我的学校项目有问题。我有一个 SQL 服务器 table,我在其中保存飞行时间(以分钟表示),以滴答形式保存(在 bigint
列中)。
在程序中,我有一个数据网格视图,我从 SQL 服务器 table 加载所有数据,现在我需要将 "flight duration" 列从滴答转换为时间(类似于 HH:mm
格式),但我不知道如何实现。
我当前用于转换列的代码如下所示,但第三行给出了关于将 'object' 转换为 'long' 的错误。
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 服务器端转换 DURATION
例子
Declare @YourTable table (ID int,duration bigint)
Insert Into @YourTable values
(1,600)
,(2,1365)
Select A.*
,AsTime = cast(dateadd(MINUTE,duration,0) as time)
,AsString = format(dateadd(MINUTE,duration,0),'HH:mm')
From @YourTable A
Returns
ID duration AsTime AsString
1 600 10:00:00.0000000 10:00
2 1365 22:45:00.0000000 22:45
您可以从Sql服务器调用并直接显示到Grid。这将更容易做到这一点。下面是示例
DECLARE @Time INT = 90
SELECT substring(CONVERT(char(8), DATEADD(MINUTE, @Time, ''), 108),0,6)
希望对您有所帮助。
我的学校项目有问题。我有一个 SQL 服务器 table,我在其中保存飞行时间(以分钟表示),以滴答形式保存(在 bigint
列中)。
在程序中,我有一个数据网格视图,我从 SQL 服务器 table 加载所有数据,现在我需要将 "flight duration" 列从滴答转换为时间(类似于 HH:mm
格式),但我不知道如何实现。
我当前用于转换列的代码如下所示,但第三行给出了关于将 'object' 转换为 'long' 的错误。
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 服务器端转换 DURATION
例子
Declare @YourTable table (ID int,duration bigint)
Insert Into @YourTable values
(1,600)
,(2,1365)
Select A.*
,AsTime = cast(dateadd(MINUTE,duration,0) as time)
,AsString = format(dateadd(MINUTE,duration,0),'HH:mm')
From @YourTable A
Returns
ID duration AsTime AsString
1 600 10:00:00.0000000 10:00
2 1365 22:45:00.0000000 22:45
您可以从Sql服务器调用并直接显示到Grid。这将更容易做到这一点。下面是示例
DECLARE @Time INT = 90
SELECT substring(CONVERT(char(8), DATEADD(MINUTE, @Time, ''), 108),0,6)
希望对您有所帮助。