C# 如何在SQL select命令的where子句中将yyyy mm dd转换为yyyymmdd

C# 如何在SQL select命令的where子句中将yyyy mm dd转换为yyyymmdd,c#,sql,sql-server,C#,Sql,Sql Server,date列数据库中的格式为yyyymmdd,但aspx.cs中的代码将参数值传递为yyyy-mm-dd。如果使用select语句,如何将WHERE子句中的yyyy-mm-dd转换为yyyymmdd aspx.cs代码: 请不要将日期时间值保存为字符 将日期列键入或,并将日期时间值直接传递给。否则,它将对n次攻击开放 阅读: 例如, using(var myConn = new SqlConnection(conString)) using(var cmd = myConn.CreateComma

date列数据库中的格式为yyyymmdd,但aspx.cs中的代码将参数值传递为yyyy-mm-dd。如果使用select语句,如何将WHERE子句中的yyyy-mm-dd转换为yyyymmdd

aspx.cs代码:

请不要将日期时间值保存为字符

将日期列键入或,并将日期时间值直接传递给。否则,它将对n次攻击开放

阅读:

例如,

using(var myConn = new SqlConnection(conString))
using(var cmd = myConn.CreateCommand())
{
    cmd.CommandText = "select distinct a.e_id from tenter where date = @date";
    cmd.Parameters.Add(@date, SqlDbType.DateTime2).Value = DateTime.Now;
    using(var adapter = new SqlDataAdapter(cmd))
    {
       // Do your operations.
    }
}

此外,SQL Server的未来版本中也可能包含此日期。您可能还需要将其用作[日期]。

可能只是:DateTime.Value.ToString.Replace-,string.empty

对于mysql,您可以尝试以下方法:

其中日期_formatdate,'%Y%m%d'='20150318'

@+jef

它可能会帮助你

您可以使用此逻辑处理查询

 declare @a date= '2014/2/3'
 select replace(@a,'-','') 
使用SQL强制转换

SqlCommand cmd=new SqlCommand();
cmd.Connection=con;
cmd.CommandText="select distinct a.e_id from tenter where cast(date as date)=cast(@date as date)";
cmd.Paramenter.AddWithValue("@date",Convert.ToDateTime(DateTime.Value));

非常感谢大家。 对我来说最好的答案是:-
adapter.SelectCommand=new SqlCommand从tenter中选择不同的a.e_id,其中date='+startdate.Value.ToString.Replace-,string.Empty+',myConn

学习使用参数化查询-首先,这些查询保护您的代码不受SQL注入的影响,SQL注入是web上的第一个漏洞,其次,它们允许您将日期作为日期传递,而不是作为字符串进行更改,这避免了需要在字符串表示之间来回转换日期!DateTime.Now.ToString YYMMDD?这是[sql server]而不是[mysql]首先,它是替换而不是替换。第二,将日期时间值保存为字符总是一个坏主意。我同意你的观点,但你并不总是控制数据库。你的代码中有太多语法错误。将日期时间值保存为字符始终是个坏主意。是的,大小写组合。不是吗???@SonerGönülSorry但将日期时间值保存为字符始终是个坏主意。不要在此处发布您自己的答案,将其中一个答案标记为已接受。在这种情况下,@ZwoRmi发布了一个,尽管它可能很糟糕
SqlCommand cmd=new SqlCommand();
cmd.Connection=con;
cmd.CommandText="select distinct a.e_id from tenter where cast(date as date)=cast(@date as date)";
cmd.Paramenter.AddWithValue("@date",Convert.ToDateTime(DateTime.Value));
adapter.SelectCommand = new SqlCommand ("select distinct a.e_id from tenter where (date='" + DateTime.ParseExact(("2015-03-18"), "yyyy-MM-dd", null).ToString("yyyyMMdd") + "')", myConn);