Php mysql选择两个日期之间的日期

Php mysql选择两个日期之间的日期,php,mysql,sql,Php,Mysql,Sql,我有一个名为prices的mysql表,用于存储日期,如下所示: id from to price 1 2013-11-25 2014-01-08 55 用户选择一个月和一年,我希望它显示从该月开始或结束的所有结果 因此,如果用户选择2013年11月、2013年12月或2014年1月,则将包括上述行 id from to price 2 2013-10-25

我有一个名为prices的mysql表,用于存储日期,如下所示:

id    from          to              price
1     2013-11-25    2014-01-08      55
用户选择一个月和一年,我希望它显示从该月开始或结束的所有结果 因此,如果用户选择2013年11月、2013年12月或2014年1月,则将包括上述行

id    from          to              price
2     2013-10-25    2013-11-07      100
如果他们选择2013年10月或11月,则会显示上面的行,因为它从10月开始,到11月结束

我试过了

SELECT * FROM `prices`
WHERE MONTH(prices.from)<={$_SESSION['month']}
AND MONTH(prices.to)>={$_SESSION['month']}
AND YEAR(prices.to)={$_SESSION['year']}
ORDER BY prices.from ASC
从`价格'中选择*`
其中月份(prices.from)={$\u SESSION['MONTH']}
年份(prices.to)={$_SESSION['YEAR']}
按价格从ASC订购
这不起作用,我不确定如何做到这一点

试着用“中间”代替。 例如:

您可以使用从用户选择的月份和年份创建日期,然后使用以YYYY-MM格式放置表格的日期列,并将两者与用户插入的YYYY-MM进行比较

我不擅长php,但这里有一个sql示例(您可以使用str_to_date中的任何一天,因为您将忽略它):

从`价格'中选择*`
其中日期格式(价格`从',%Y-%m)=
日期格式(STR-TO-DATE('01,102013','%d,%m,%Y'),%Y-%m)
按价格订购
遵循以下方法:

SELECT * from prices
WHERE str_to_date('{$_SESSION['month']}-{$_SESSION['year']}','%b-%Y') BETWEEN date(prices.from) AND date(prices.to)
您可能只想在str_to_日期中使用正确的格式,目前它转换为以下格式=2013年10月


检查其他格式:

我非常确定大于和小于在mysql查询中不起作用,您可以使用
其中xxx和xxx之间的xxx
什么是“不起作用”?顺便说一句,你想如何处理一个月返回两行价格的情况?我想显示找到的所有价格行。我不确定如何在这两行之间使用,因为用户选择的是一个月和一年,而不是一个月的范围。这正是我想要的,stru to_DATE格式看起来非常有用。谢谢。@user1869566。很高兴这有帮助:)
SELECT * from prices
WHERE str_to_date('{$_SESSION['month']}-{$_SESSION['year']}','%b-%Y') BETWEEN date(prices.from) AND date(prices.to)