如何在两个日期和时间之间从数据库获取记录?
我在UI服用日期从服务器请求:如何在两个日期和时间之间从数据库获取记录?
request.date_from = dateTimePickerFromDate.Value; //7/31/2017 12:33:18 PM request.date_to = dateTimePickerToDate.Value; //7/31/2017 12:33:18 PM
数据没有得到显示的时间是一样的date_from和DATE_TO
并在数据库中我有SQL查询:
@date_from datetime, @date_to datetime
select Transaction_date from Transaction where (Transaction_Date >= @date_from and Transaction_Date <= @date_to) order by Transaction_date desc
我收到数据,如果我选择不同的日期,但如果我选择相同的日期,数据不会显示,虽然我有数据库中的记录,因为同一时间。
正如我想把日期2017年7月31日00:00:00和2017年7月31日23:59:59做什么样的变化,我需要做无论是在显示与记录SQL查询或在WinForms UI?
利用的相互查询
select * from table where {date_filed} between {start_data} and {end_date}
或者你可以使用
select * from table where {date_filed} >= {start_data} and {date_filed} <= {end_date}
,但在这两个日期日期字段需要的DateTime或时间戳数据类型以其他方式使用其类型案件STR_TO_DATE使用在mysql查询中
假设你有两个DatePicker控件形式。我会添加一天到dt_to
。
var dt_from = dateTimePicker1.Value;
var dt_to = dateTimePicker2.Value;
if (dt_from.Date == dt_to.Date)
dt_to = dt_to.AddDays(1);
[更新]
request.date_from = dateTimePickerFromDate.Value;
request.date_to = dateTimePickerToDate.Value;
if (request.date_from.Value.Date == request.date_to.Value.Date)
request.date_to = dt_to.Value.AddDays(1);
[更新2]
request.date_from = dateTimePickerFromDate.Value;
request.date_to = dateTimePickerToDate.Value;
if (request.date_from.Value.Date == request.date_to.Value.Date)
request.date_from = request.date_from.Value.Date;
如果你使用'@ date_from'相同的日期和'@ date_to',你会只获得具有确切日期的记录。就你而言,我认为,没有确切的匹配。 – Ben
请阅读[在什么情况下,我可以添加“紧急”或其他类似的短语到我的问题,以获得更快的答案?](/ meta.stackoverflow.com/q/326569) - 总结是,这不是这是解决志愿者问题的理想方式,可能会对获得答案产生反作用。请不要将这添加到您的问题。 – halfer
嘿本,我有数据库中的记录让我们说从** 2017-07-31 10:50:47.043 **和** 2017-07-31 19:07:07.137不等**日期相同,时间不同。所以,如果我选择相同的日期,我应该能够在具有相同日期的两个不同时间之间获得数据。 – Rudra