使用 C# 从 SQL 获取今天的记录

Get todays records from SQL using C#

在一个数据库中,我有一个 table,它有一个名为 Data Recolha 的字段,我检查了它的数据类型和日期时间。 存储的值如下: 26/08/2019 5:00:00

string hoje = DateTime.Today.AddDays(-1).ToString("dd/MM/yyyy H:mm:ss.fff");

string query = "SELECT * FROM  database WHERE  CodCliente=1 AND 'Data Recolha' >= '" + hoje + "'" ;

我也试过转换为日期,对两个值都使用了强制转换,我要么收到错误,要么当我 运行 代码显示存储在 table 中的所有值时。还使用不同的 hoje 作为日期时间作为带格式和不带格式的字符串。 这些值存储在 C# DataTable 中,我检查了从字段 Data Recolha 收集的值的类型,并将其存储为 System.DateTime.

您的代码所做的是字符串比较,因为:
'Data Recolha' 不是 列的名称 Data Recolha 因为你用单引号将它括起来,并且
hoje 是字符串文字。
因此,将 Data Recolha 括在方括号中,并将 hoje 转换为 datetimeCONVERT(),如下所示:

[Data Recolha] >=  convert(datetime, hoje, 103) 

所以使用这个:

string query = "SELECT * FROM  database WHERE  CodCliente=1 AND [Data Recolha] >= convert(datetime, '" + hoje +"', 103)";
  1. 请使用 sqlparameter 而不是 string concat 以避免 sqlinjection
  2. 如果您使用 DataReader 或 DataTable 读取数据,我建议您使用 Dapper 来简化代码。
using(var connection = yourconnection)
{
    datetime hoje = DateTime.Today.AddDays(-1);
    string sql = "SELECT * FROM  database WHERE  CodCliente=1 AND 'Data Recolha' >= @hoje" ;
    var result = connection.Query(sql,new{hoje});
}