任何人都可以帮我解决这个我想要执行的问题,
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;
}
它什么都不返回
我得到查询错误的任何想法。
答案 0 :(得分:6)
由于格式和位置,将DateTime放入SQL字符串是一种灾难。将您的sql行更改为:
string sql = "Select * from [project] where [condition] = 0 AND [Time] < GetDate()";
这将以任何预期的格式使用服务器自己的当前日期时间。
如果您绝对需要在客户端执行操作,则使用SqlCommand而不是将DateTime作为字符串添加“Time&lt; @”,然后将DateTime添加为命令参数。这至少可以避免格式化问题。
答案 1 :(得分:2)
您知道SQL Server是否具有内置时间功能。试试这个:
string sql = "Select * from [project] where [condition] = 0 AND [Time] < GETDATE()";
或者如果您想要UTC中的日期,请执行以下操作:
string sql = "Select * from [project] where [condition] = 0 AND [Time] < GETUTCDATE()";
这样,代码中就没有任何字符串连接。
你能否回答以下问题:
[Time]
是DATETIME
数据类型还是类似(即:不是文字)