我正在尝试在 mysql 数据库中搜索迄今为止的所有约会。日期就是这种格式。
2012-07-26
这是我用来从另一个页面上的下拉选择框中选择相关约会的代码。
AND SUBSTRING(startDate, 6, 2) >= $month
AND SUBSTRING(startDate, 6, 2) <= $month2
AND SUBSTRING(startDate, 9, 2) <= $day
AND SUBSTRING(startDate, 9, 2) <= $day2
我遇到的问题是,如果我选择像 02 这样的一天,那么结果只会是任何一个月中早于 02 的天数。而我需要更多类似的东西;
SUBSTRING(startDate, 6, 5) <= '$month2'-'$day2'
我只是不确定如何正确表达它。
最佳答案
假设您的列是 DATE
或 DATETIME
类型,您应该使用 MySQL 的日期函数而不是 SUBSTRING
。
相关日期函数:
DAY()
MONTH()
新代码:
AND MONTH(startDate) >= $month
AND MONTH(startDate) <= $month2
AND DAY(startDate) <= $day
AND DAY(startDate) <= $day2
您还可以使用 BETWEEN
运算符。
关于php - 在 php/mysql 中使用子字符串在日期之间搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13687903/