php - 在 php/mysql 中使用子字符串在日期之间搜索

标签 php mysql date search

我正在尝试在 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' 

我只是不确定如何正确表达它。

最佳答案

假设您的列是 DATEDATETIME 类型,您应该使用 MySQL 的日期函数而不是 SUBSTRING

相关日期函数:

  • DAY()
  • MONTH()

新代码:

AND MONTH(startDate) >= $month
AND MONTH(startDate) <= $month2
AND DAY(startDate) <= $day
AND DAY(startDate) <= $day2

您还可以使用 BETWEEN 运算符。

Documentation

关于php - 在 php/mysql 中使用子字符串在日期之间搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13687903/

相关文章:

PHP post_max_size vs upload_max_filesize,有什么区别?

mysql - 如何查找多列中最常见的值

mysql - 使用 RMySQL 获取的整数列无法转换为 double

java - 更改时区而不更改日期格式

php - 在 app.yaml Google App Engine 中将参数传递给 php

PHP 条件返回语句?

ruby-on-rails-3 - 更改年份以在Rails中更改日期

ActionScript 日期比较

php - PHP 文档中的参数,方括号?

c# - 当前文件夹中的图像在新上传时不会被删除