.NET - 获取两个日期之间的数据

.NET - getting the data between two dates

我正在尝试从 SQL 服务器获取两个日期之间的数据。

我用这段代码试试:

string kayit = "SELECT * FROM Kabin_Verileri WHERE Readtime BETWEEN '" + dateTimePicker1.Value + "' and '" + dateTimePicker2.Value + "'";

但出现此错误:

System.Data.SqlClient.SqlException: 'The conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value.'

Error

My SQL Server table design

有人知道如何获取两个日期之间的数据吗?

您需要将 dateTimePicker1.ValuedateTimePicker2.Value 格式化为 sql 可以读取的字符串 一个约会。 ISO 格式 'yyyy-mm-dd' 是大多数 sql 引擎的理想选择。

在 c# 中你这样做...

string fromDateStringISO = Convert.ToDateTime(dateTimePicker1.Value).ToString('o');
string toDateStringISO = Convert.ToDateTime(dateTimePicker2.Value).ToString('o');

string kayit = "SELECT * FROM Kabin_Verileri where Readtime BETWEEN '" + fromDateStringISO + "' and '" + toDateStringISO  + "'"

'o'格式为ISO格式。 Check here

您需要将 varchar 数据类型更改为 datetime。如果 dateTimePicker 是 datetime 属性 你可以把它写成 dateTimePicker (不需要获取它的值).

string kayit = "SELECT * FROM Kabin_Verileri where Readtime BETWEEN '" + dateTimePicker1 + "' and '" + dateTimePicker2 + "'";

如果 dateTimePicker 不是 DateTime 属性 那么你需要像@nazim 上面说的那样转换它