C# 日期转换为yyyy mm dd

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.Parameters.Add(“@StartDate”,SqlDbType.DateTime).Value=DateTime.Parse(txtStartDate.Text)

txtStartDate.Text中的值类似于2012年7月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);

请帮助我

使用
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);