gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 14:14:17 25 4
gpt4 key购买 nike

如何将 C# 日期时间转换为 MySql 日期时间格式。我从像 7/27/2011 这种格式的文本框中获取值。但我想以这种格式转换 2011-7-27。所以我在这里stuking。请帮我。我的目标是过滤两个日期之间的记录并显示在 asp.net 的 ListView 控件中。这是我的代码:

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

最佳答案

我没有将 MySQL 与 .NET 一起使用,但 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 中已过时。

希望这对您有所帮助。

关于c# - 从 C# 到 MySql 格式的日期转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6939564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com