使用 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
转换为 datetime
和 CONVERT()
,如下所示:
[Data Recolha] >= convert(datetime, hoje, 103)
所以使用这个:
string query = "SELECT * FROM database WHERE CodCliente=1 AND [Data Recolha] >= convert(datetime, '" + hoje +"', 103)";
- 请使用 sqlparameter 而不是
string concat
以避免 sqlinjection
- 如果您使用 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});
}
在一个数据库中,我有一个 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
转换为 datetime
和 CONVERT()
,如下所示:
[Data Recolha] >= convert(datetime, hoje, 103)
所以使用这个:
string query = "SELECT * FROM database WHERE CodCliente=1 AND [Data Recolha] >= convert(datetime, '" + hoje +"', 103)";
- 请使用 sqlparameter 而不是
string concat
以避免 sqlinjection - 如果您使用 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});
}