C# 如何在sql server中将字符串转换为日期时间
我想以C# 如何在sql server中将字符串转换为日期时间,c#,asp.net,sql-server-2008,C#,Asp.net,Sql Server 2008,我想以hh:mm:ss格式计算总时间。我在intlike(465)中有分钟 我提出: CONVERT(varchar, CONVERT(datetime, cast(cast(TotalMin/60 as int) as nvarchar(50)) + ' : ' + cast(TotalMin%60 as nvarchar(50))),108) AS TotalMin 但它显示了以下错误。不是在SQL Server中,而是在c#中运行代码时: 从字符转换日期和/或时间时转换失败 绳子 试试这
hh:mm:ss
格式计算总时间。我在int
like(465)中有分钟
我提出:
CONVERT(varchar, CONVERT(datetime, cast(cast(TotalMin/60 as int) as nvarchar(50)) + ' : ' + cast(TotalMin%60 as nvarchar(50))),108) AS TotalMin
但它显示了以下错误。不是在SQL Server中,而是在c#中运行代码时:
从字符转换日期和/或时间时转换失败
绳子
试试这个:
TimeSpan t = TimeSpan.FromMinutes( TotalMin);
有关更多信息,请参见。您可以使用此代码在SQL Server中获取字符串。它将转换小时和分钟,并添加
00
秒,因为您没有它们(您使用的是分钟的整数值):
它最多工作5999分钟(99小时59分钟)
如果您需要Unicode版本:
declare @min int = 465
select right(N'0' + cast(@min/60 as nvarchar(2)),2)
+ N':'
+ right(N'0' + cast((@min - (@min/60)*60) as nvarchar(2)),2)
+ N':00'
有关强制转换和转换的完整讨论,包括不同的日期格式选项,请参阅下面的MSDN库链接:
这将对您有所帮助
当小数部分被丢弃时,您希望将其乘以毫秒
SELECT DATEADD(ms, 121.25 * 1000, 0)
如果希望不包含日期部分,可以使用CONVERT和样式114
SELECT CONVERT(VARCHAR, DATEADD(ms, 121.25 * 1000, 0), 114)
显示您的C#代码以运行此查询并从中获取结果。您的代码正常工作,但显示“@”代替“:”exa:00@56@00I无法更改数据类型,因为我正在从excel文件获取转换记录。
SELECT DATEADD(ms, 121.25 * 1000, 0)
SELECT CONVERT(VARCHAR, DATEADD(ms, 121.25 * 1000, 0), 114)