string val;
val = Request.Form["timerData"].ToString();
TimeSpan ts = TimeSpan.FromMilliseconds(Convert.ToInt32(val.ToString()));
lbTime.Text = ts.ToString();
这里lbTime.Text以00:44:50格式返回时间值。
在我的Sql数据库中,我使用Time(7)数据类型作为时间及其
默认值为('00:00:00.0000000')
我想将此格式转换为00:44:50到('00:44:50.240000')并使用更新语句在数据库中输入。
以上时间用于示例目的
请帮助我。
答案 0 :(得分:1)
如果您的更新语句是参数化,或者您使用存储过程passing a TimeSpan
to a time(7)
column should work perfectly fine。像这样:
public static void UpdateTimestamp( int id , TimeSpan ts )
{
using ( SqlConnection connection = new SqlConnection( "some-connect-string" ) )
using ( SqlCommand command = connection.CreateCommand() )
{
command.CommandText = "update foo set duration = @duration where id = @id" ;
command.Parameters.AddWithValue( "@id" , id ) ;
command.Parameters.AddWithValue( "@duration" , ts ) ;
connection.Open() ;
int rowsAffected = command.ExecuteNonQuery() ;
connection.Close() ;
if ( rowsAffected == 0 ) throw new InvalidOperationException( "That didn't work B^(" ) ;
if ( rowsAffected > 0 ) throw new InvalidOperationException( "That shouldn't have happend B^(" ) ;
}
return ;
}
答案 1 :(得分:0)
尝试以下方法之一:
DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;
Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018
您甚至可以使用更多'FFFFF'来表示秒数分数的最高七最高位数。
取自:http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
有帮助吗?
答案 2 :(得分:0)
在你的最后一个表达中,你说
ts.ToString()
如果并非所有数字都为零,则此重载仅显示小数秒。您可能希望使用自定义格式字符串,如
ts.ToString(@"hh\:mm\:ss\.fffffff")
代替。这应该适用于.NET 4.5和4.0。请参阅MSDN: Custom TimeSpan Format Strings。
答案 3 :(得分:0)
我使用相同的代码只是错误是我在将值传递给int之前将值转换为int
string val;
val = Request.Form["timerData"].ToString();
TimeSpan ts = TimeSpan.FromMilliseconds(Convert.ToDouble(val.ToString()));
lbTime.Text = ts.ToString();
<强>解决强>