日期格式转换字符串格式(toString("yyyy-MM-dd hh:mm:ss"))报错.

来源:互联网 发布:apache commons api 编辑:程序博客网 时间:2024/05/06 01:59
用户用意大利版操作系统注册用户,系统报错:
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

The statement has been terminated.

经查日志:
2012-01-09 06:14:07,389 [3] ERROR HtExceptionLogger - WS Exception : code::Server.Processing  message::register::Page_Load() Register error  source::
 Key::code
 Value:: 996
 Key::what
 Value:: register::Page_Load() Register error
 Key::ex
 Value:: OBDServiceLib.include.HtException: FXUserDAO::Insert() error ---> System.Data.SqlClient.SqlException: The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
The statement has been terminated.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at OBDServiceLib.include.MSSqlDbHelper.ExecuteSql(String SQLString) in D:\work\OBDII\02_Develop\21_Application\web\OBDServiceLib\include\MSSqlDbHelper.cs:line 334
   at OBDServiceLib.HT.FXUserDAO.Insert(FXUser item) in D:\work\OBDII\02_Develop\21_Application\web\OBDServiceLib\HT\FXUserDAO.cs:line 74
   --- End of inner exception stack trace ---
   at OBDServiceLib.HT.FXUserDAO.Insert(FXUser item) in D:\work\OBDII\02_Develop\21_Application\web\OBDServiceLib\HT\FXUserDAO.cs:line 84
   at register.Page_Load(Object sender, EventArgs e)
OBDServiceLib.include.HtException: register::Page_Load() Register error ---> OBDServiceLib.include.HtException: FXUserDAO::Insert() error ---> System.Data.SqlClient.SqlException: The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
The statement has been terminated.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at OBDServiceLib.include.MSSqlDbHelper.ExecuteSql(String SQLString) in D:\work\OBDII\02_Develop\21_Application\web\OBDServiceLib\include\MSSqlDbHelper.cs:line 334
   at OBDServiceLib.HT.FXUserDAO.Insert(FXUser item) in D:\work\OBDII\02_Develop\21_Application\web\OBDServiceLib\HT\FXUserDAO.cs:line 74
   --- End of inner exception stack trace ---
   at OBDServiceLib.HT.FXUserDAO.Insert(FXUser item) in D:\work\OBDII\02_Develop\21_Application\web\OBDServiceLib\HT\FXUserDAO.cs:line 84
   at register.Page_Load(Object sender, EventArgs e)
   --- End of inner exception stack trace ---
2012-01-09 06:14:07,451 [3] ERROR HtExceptionLogger - 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [end]
2012-01-09 06:23:46,103 [9] ERROR HtExceptionLogger - WS Exception : code::Server.Processing  message::BaseLoginPage::CheckUserAndRedirect() ノ?:sapisnova,盞?:sapisnova.12, 祅?ア?ノ?┪盞???!  

解决办法:
将toString("yyyy-MM-dd hh:mm:ss")
换成
// <summary>
        /// 获取时间的标准字符串表示方式
        /// </summary>
        /// <param name="d">默认请传入DateTime.UtcNow</param>
        /// <returns></returns>
        static public string GetDatetimeToString(DateTime d)
        {
            //return DateTime.UtcNow.ToString(ObdConfig.DateTimeFormat);
            return d.Year + "-" + d.Month + "-" + d.Day + " " + d.Hour + ":" + d.Minute + ":" + d.Second;
        }

原创粉丝点击