从C#到MySql格式的日期转换
如何将C#datetime转换为MySql Datetime格式。 我从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有类似的日期转换问题。 保持snae的唯一方法是使用日期值的参数,既用于输入,也用于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中已经过时了。
希望这可以帮助。
您可以将格式分配给数据时间, DateTime.ParseExact()
或DateTime.ToString(format)
2011-7-27
的格式是yyyy-m-dd
我用:
string fieldate = dt1.ToString("yyyy-MM-dd");
假设您在数据库中执行此操作,我认为您应该使用date_format来获取所需的格式
像date_format(dateval,'%Y-%c-%d')
(未测试)
上述就是C#学习教程:从C#到MySql格式的日期转换分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1011123.html