【问题标题】:php and mysql use the date range can not showphp和mysql使用日期范围不能显示
【发布时间】:2013-01-03 10:03:24
【问题描述】:

我对选择之间的 mysql 日期有疑问。在mysql表中,字段为varchar。日期范围是'21-01-2013'和'31-01-2013',它可以显示记录,但是日期范围是'21-01-2013'和'20-02-2013',它不能显示记录。

"SELECT * from away_from_office where (awaydatefrom between '21-01-2013' and '31-01-2013') ";

【问题讨论】:

  • 之间的操作,不能在字符串上工作,正如你提到的;您需要将字符串转换为整数值,如 JW 用户所示
  • 解决方案是切换到DATE字段而不是VARCHAR。正如答案所示,您可以即时转换,但这更像是一个快速修复/补丁,而不是一个适当的解决方案。

标签: php mysql sql select


【解决方案1】:

您应该首先使用STR_TO_DATE 将其转换为日期,例如。

SELECT * 
from away_from_office 
where awaydatefrom between STR_TO_DATE('21-01-2013', '%d-%m-%Y') and  
                           STR_TO_DATE('31-01-2013', '%d-%m-%Y') 

如果该列的格式与您显示的格式相同,则也进行转换

WHERE STR_TO_DATE(awaydatefrom, '%d-%m-%Y') BETWEEN

如果您有机会更改表格,或者您正在处理示例记录,请通过将列的数据类型更改为 DATE 来更改表格。

【讨论】:

  • 如果您认为某个答案解决了问题,请通过单击白色复选标记将其标记为“已接受”(大约 15 分钟到一个小时后)。这有助于将注意力集中在仍然没有答案的旧 SO。
【解决方案2】:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    • 2014-10-26
    • 2013-07-11
    • 2011-05-11
    • 2016-06-02
    相关资源
    最近更新 更多