使用datetime时sql where子句的问题

Mr *_*r A -1 c# sql sql-server-2008

任何人都可以帮我解决这个问题我试图执行,

 static public DataTable GetAllCustomers()
{
    string sql = "Select * from [project] where [condition] = 0 AND [Time] < '" + DateTime.Now + "'";
    SqlDataAdapter da = new SqlDataAdapter(sql, ConnectionString);
    DataTable dt = new DataTable();
    da.Fill(dt);
    return dt;
}
Run Code Online (Sandbox Code Playgroud)

它什么都不返回

任何想法,我得到的查询错误.

Dam*_*enG 6

由于格式和位置,将DateTime放入SQL字符串是一种灾难.将您的sql行更改为:

string sql = "Select * from [project] where [condition] = 0 AND [Time] < GetDate()";
Run Code Online (Sandbox Code Playgroud)

这将以任何预期的格式使用服务器自己的当前日期时间.

如果您绝对需要在客户端执行操作,则使用SqlCommand而不是将DateTime作为字符串添加"Time <@",然后将DateTime添加为命令参数.这至少会避免格式化问题.