【问题标题】:Select date between mysql在mysql之间选择日期
【发布时间】:2016-06-12 19:52:17
【问题描述】:

我需要选择两个日期之间的记录,如下所示:

select pa_EntryDate , pa_Number , pa_Value , pa_Note 
from payments 
where (DATE_FORMAT(pa_EntryDate, '%d/%m/%Y') 
between '1/6/2016' and '12/6/2016') 
and  pa_To = 42 
and archived=0

pa_EntryDate 列中的日期格式为:“2015-09-10 00:00:00”..

生成的结果超出了我的日期范围,有一些遗漏:

   pa_EntryDate      id      value
2015-09-10 00:00:00 1356    1031.00 
2015-11-12 00:00:00 1564    1111.00 
2015-12-10 00:00:00 1644    1138.00 
2016-02-11 00:00:00 192     1255.00 
2016-03-10 00:00:00 282     1110.00 
2016-05-12 00:00:00 467     1141.00 

【问题讨论】:

  • 显示您的代码。你真的有两个常量要搜索,还是有 DateTime 变量?
  • 从付款中选择 pa_EntryDate 、 pa_Number 、 pa_Value 、 pa_Note ,其中 DATE_FORMAT(pa_EntryDate, '%d-%m-%Y') 在 '" + txbFrom.Value.ToShortDateString() + "' 和 ' " + txbTo.Value.ToShortDateString() + "' and pa_To = " + sup_Id+" and archived=0

标签: c# mysql date


【解决方案1】:

转换你的日期字符串

select pa_EntryDate , pa_Number , pa_Value , pa_Note 
from payments 
where pa_EntryDate  between STR_TO_DATE('1/6/2016', '%d/%m/%Y') 
                   and STR_TO_DATE('12/6/2016', '%d/%m/%Y') 
and  pa_To = 42 
and archived=0;

【讨论】:

  • 在您的查询中,您转换日期的格式,但不转换为字符串。在我的查询中,我将字符串转换为日期,以便可以在条件之间正确评估日期。我希望这是我清除
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-02
  • 2013-05-22
  • 2017-01-17
  • 1970-01-01
  • 2023-01-14
  • 2021-12-09
相关资源
最近更新 更多