我在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
如果我选择不同的日期 ,我会收到数据,但是如果我选择相同的日期,虽然我在同一时间内在数据库中有记录,但数据不会显示。
因为我想显示日期 7/31/2017 00:00:00 和 7/31/2017 23:59:59 之间的记录我需要在SQL查询中或在winforms UI中创建?
答案 0 :(得分:1)
在查询中使用
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}
但是在date date字段中都需要datetime或timestamp数据类型,否则使用str_to_date在mysql查询中使用它的类型情况
答案 1 :(得分:0)
假设您的表单上有两个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;