簡體   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