C# 日期转换为yyyy mm dd
cmd.Parameters.Add(“@StartDate”,SqlDbType.DateTime).Value=DateTime.Parse(txtStartDate.Text) txtStartDate.Text中的值类似于2012年7月31日 我需要把它记为2012-07-31 用于存储过程中的处理 我的代码如下:C# 日期转换为yyyy mm dd,c#,asp.net,sql-server,C#,Asp.net,Sql Server,cmd.Parameters.Add(“@StartDate”,SqlDbType.DateTime).Value=DateTime.Parse(txtStartDate.Text) txtStartDate.Text中的值类似于2012年7月31日 我需要把它记为2012-07-31 用于存储过程中的处理 我的代码如下: cmd = new SqlCommand("DownloadtoXLSheet", conn); cmd.Paramet
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);
请帮助我使用
DateTime.ParseExact
方法而不是DateTime.Parse
DateTime result=DateTime.ParseExact("31-07-2012", "dd-MM-yyyy",CultureInfo.InvariantCulture);
试一试
DateTime dt = ...;
dt.ToString("yyyy-MM-dd");
在.ToString()方法中,可以指定格式字符串
首先,存储过程/数据库中的处理不需要特定格式的日期。一旦DateTime被添加为参数(类型为DateTime),SQL提供程序将确保SQL server能够处理该日期 另一方面,您可能需要DateTime.Parse使用特定格式的日期 尝试: 但是,也许您应该使用
DateTime.TryParseExact
,以避免出现异常?可能重复的@littleobbytables或。
DateTime.Parse(txtStartDate.Text).ToString("yyyy-MM-dd")
DateTime.ParseExact(input, "dd-MM-yyyy", CultureInfo.InvariantCulture);