2012-07-31 18 views
-2

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://stackoverflow.com/questions/9806967/formatting-any-string-to-string-yyyy-mm-dd) – LittleBobbyTables 2012-07-31 12:38:27

+0

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

回答

2

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

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

嘗試

DateTime dt = ...; 

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

首先,你不需要在日期在存儲過程/數據庫中處理的特定格式。一旦將DateTime添加爲DateTime類型的參數,SQL提供程序將確保SQL Server可以處理日期。

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

嘗試:

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

但是,也許你應該使用DateTime.TryParseExact代替,以避免異常?

相關問題