日期转换为yyyy-mm-dd

日期转换为yyyy-mm-dd

问题描述:

cmd.Parameters.Add(“@ StartDate”,SqlDbType.DateTime).Value = DateTime.Parse(txtStartDate.Text);日期转换为yyyy-mm-dd

在txtStartDate.Text值是像2012-07-31

我需要得到它为2012-07-31。

用于存储过程中的处理。

我的代码是这样的:

  cmd = new SqlCommand("DownloadtoXLSheet", conn); 



      cmd.Parameters.Add("@StartDate", SqlDbType.DateTime).Value = DateTime.Parse(txtStartDate.Text); 
      cmd.Parameters.Add("@EndDate", SqlDbType.DateTime).Value = DateTime.Parse(txtEndDate.Text); 
      cmd.Parameters.Add("@FirstName", SqlDbType.VarChar).Value = DropDownList1.Text.ToString(); 
      cmd.CommandType = CommandType.StoredProcedure; 
      cmd.ExecuteNonQuery(); 

      SqlDataAdapter da = new SqlDataAdapter(cmd); 
      da.Fill(dt1); 

帮我出

+0

[格式化任何字符串为字符串“yyyy/MM/dd”](http://*.com/questions/9806967/formatting-any-string-to-string-yyyy-mm-dd) – LittleBobbyTables 2012-07-31 12:38:27

+0

@LittleBobbyTables或[此问题](http://*.com/q/4250745/869912)。 – 2012-07-31 13:03:03

使用DateTime.ParseExact方法,而不是DateTime.Parse

DateTime result=DateTime.ParseExact("31-07-2012", "dd-MM-yyyy",CultureInfo.InvariantCulture); 

尝试

DateTime dt = ...; 

dt.ToString("yyyy-MM-dd"); 

在的ToString()方法,你可以指定一个格式字符串 http://msdn.microsoft.com/en-us/library/zdtaw1bw.aspx

DateTime.Parse(txtStartDate.Text).ToString("yyyy-MM-dd") 

首先,你不需要在日期在存储过程/数据库中处理的特定格式。一旦将DateTime添加为DateTime类型的参数,SQL提供程序将确保SQL Server可以处理日期。

另一方面,您可能需要DateTime.Parse的特定格式的日期才能工作。

尝试:

DateTime.ParseExact(input, "dd-MM-yyyy", CultureInfo.InvariantCulture); 

但是,也许你应该使用DateTime.TryParseExact代替,以避免异常?