Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从C#到MySql格式的日期转换_C#_Datetime Format - Fatal编程技术网

从C#到MySql格式的日期转换

从C#到MySql格式的日期转换,c#,datetime-format,C#,Datetime Format,如何将C#datetime转换为MySql datetime格式。我从文本框中获取值,如2011年7月27日这种格式。但我想转换成这个格式2011-7-27。所以我在这里结巴。请帮帮我。我的目标是过滤两个日期之间的记录,并在asp.net的listview控件中显示。 这是我的密码: DateTime dt1 = Convert.ToDateTime(txtToDate.Text); DateTime dt2 = Convert.ToDateTime(txtFromDate.Text);

如何将C#datetime转换为MySql datetime格式。我从文本框中获取值,如2011年7月27日这种格式。但我想转换成这个格式2011-7-27。所以我在这里结巴。请帮帮我。我的目标是过滤两个日期之间的记录,并在asp.net的listview控件中显示。 这是我的密码:

DateTime dt1 = Convert.ToDateTime(txtToDate.Text);
  DateTime dt2 = Convert.ToDateTime(txtFromDate.Text);
            lvAlert.DataSource = facade.GetAlertsByDate(dt1, dt2);
            lvAlert.DataBind();

您可以将格式指定给数据时间,
DateTime.ParseExact()
DateTime.ToString(格式)
,:

2011-7-27
的格式为
yyyy-m-dd

我使用:

string fieldate = dt1.ToString("yyyy-MM-dd");

假设您在数据库中执行此操作,我认为您应该使用以获得所需的格式


类似于
date\u格式(dateval,%Y-%c-%d')
(未测试)

我没有在.NET中使用MySQL,但Oracle在.NET中也存在类似的日期转换问题。保持这种状态的唯一方法是对日期值使用参数,既用于输入,也用于WHERE子句比较。使用MySQL日期参数类型创建的参数,只要给它一个.NET datetime值,就可以工作,无需进行转换

编辑以添加示例代码

此代码示例显示了使用参数作为日期时间值的基本技术,而不是将转换编码为文本值并将这些文本值直接嵌入SQL命令文本中

public DataTable GetAlertsByDate(DateTime start, DateTime end)
{
    SqlConnection conn = new SqlConnection(connectionString);
    SqlCommand cmd = new SqlCommand(
        "SELECT * FROM Alerts WHERE EventTime BETWEEN @start AND @end", conn);
    DataTable table = new DataTable();
    try
    {
        SqlParameter param;
        param = new SqlParameter("@start", SqlDbType.DateTime);
        param.Value = start;
        cmd.Parameters.Add(param);
        param = new SqlParameter("@end", SqlDbType.DateTime);
        param.Value = end;
        cmd.Parameters.Add(param);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        da.Fill(table);
    }
    finally
    {
        cmd.Dispose();
        conn.Close();
        conn.Dispose();
    }
    return table;
}
这是SQL Server代码,但对于大多数数据库,技术应该是相同的。例如,对于Oracle,唯一的更改是使用Oracle数据访问对象,并在参数名称中使用“:”代替“@”。MySQL的技术也应该非常类似

对于许多数据库,可能存在用于创建参数的快捷方式,例如:

cmd.Parameters.AddWithValue("@start", start);
当您知道该值不为null,并且可以从该值的C#类型派生正确的参数类型时,这种方法就起作用了。“AddWithValue”特定于SQL Server;“添加”也可以使用,但在SQL Server中已过时


希望这有帮助。

您是否在数据库中过滤记录?上面的代码没有显示您是如何执行此操作的。我假设有一组很好的.net类,就像SQLServer一样,允许您设置连接、命令对象、,这应该允许您在对数据库的调用中使用参数,并且应该注意将DateTime对象转换为数据库想要的任何对象。担心MySql的日期格式似乎是非常错误的,但我可能错误地认为MySql的支持有多好。亲爱的,我在MySql 5.1数据库中遇到了问题。现在我没有解决我的问题。请给我一些技巧。问题是这样的:我创建一个函数并传递两个参数,比如datetime数据类型。我有两个文本框,即开始日期和结束日期。我使用ajax calander控件从用户那里获取输入。所以我接受C#datetime格式的输入,即2011年7月27日,我的MYSQL datetime格式是这样的2011-7-27。因此,它与我们的数据库日期时间格式不匹配。这就是问题所在,它无法比较两个日期之间的结果。请帮帮我。亲爱的,我试过以上所有的方法,但是我没有找到解决办法。请帮帮我。我不太明白你的问题,如果你有日期时间d1,d2;你可以比较d1