繁体   English   中英

用C#和SQL格式化日期

[英]Formating date in C# and SQL

我已经在互联网上搜索了,但是找不到解决方案。 我想做这个:

if (Convert.ToString(form1.searchBox.SelectedItem) == "Date")
{
    val = (sender as TextBox).Text;
    sqlCmd = new SqlCommand(
        "SELECT * FROM ["TableName"] WHERE ["Date"] LIKE '" + 
         filterFunc().Trim() + "%'", connection);
}

因此,我有一个搜索框(文本框),可以在其中输入内容,并显示在数据库中。 对于整数和字符串,这很好用,但是不知何故他在上面的日期值上遇到了问题(在我的SQL数据库中将其键入为“ date”)。 当我想获取值时,会出错。 我试图在SQL字符串和C#中转换并转换它,但没有任何帮助!

问题是您无法对日期进行赞。 为了清楚起见,您可以使用参数化查询,并像这样转换日期数据类型:

using (SqlCommand command = new SqlCommand(
  "SELECT * FROM ["+TableName+"] WHERE convert(varchar(10),[Date],112) like @Date", connection))
{
    command.Parameters.Add(new SqlParameter("Date", filterFunc().Trim() + "%"));
    SqlDataReader reader = command.ExecuteReader();
    while (reader.Read())
    {
        string val1 = reader.GetString(0);
        string val2 = reader.GetString(1);
        Console.WriteLine("Val 1= {0}, Val2 = {1}", val1, val2);
    }
}

另请注意,出于性能原因,您根本不应该执行LIKE,而应使用BETWEEN进行日期查找。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM