我想在表中存储时间,并以foreach( $array as &$value ) {
if( strpos($value, ':' ) ) {
return;
}
}
作为数据类型来存储时间。当我减去两个time(7)
时,我的DateTime
变量得到了"1.18:36:36.7484253"
。但问题是,当我在表中插入此值时,我收到此错误:
TimeSpan
溢出。值SqlDbType.Time
超出范围。必须介于'1.18:36:36.7484253'
和00:00:00.0000000
之间。
我知道这个错误,我的问题是我可以使用的数据类型。我正在使用SQL Server 2008和C#。
答案 0 :(得分:1)
SQL Server存储没有天数的时间。有效范围应在00:00:00.0000000
和23:59:59.9999999
之间,如邮件中所示。
对于保存日期,您可以将TimeSpan
转换为Long
至方法Ticks
,或者将分钟和秒数相加。
答案 1 :(得分:0)
要解决该问题,您需要执行以下操作:
HI,您需要创建一个新的TimeSpan变量。
//////// Calculation for TimeStamp //////////
DateTime fechaAux = DateTime.Now;
DateTime fechaIngresoAM = new DateTime(fechaAux.Year, fechaAux.Month, fechaAux.Day, 8, 30, 00);
TimeSpan auxIngresoAM = ingresoAM.Subtract(fechaIngresoAM);
TimeSpan resultadoRetrasoIngresoAM = new TimeSpan(auxIngresoAM.Hours, auxIngresoAM.Minutes, auxIngresoAM.Milliseconds);
command.Parameters.Add(new SqlParameter("@retraso_ingreso_am", SqlDbType.Time));
command.Parameters["@retraso_ingreso_am"].Value = resultadoRetrasoIngresoAM;
command.ExecuteNonQuery();
它会按预期工作。