Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中比较年份和日期('Y-m-d')_Php_Mysql - Fatal编程技术网

在PHP中比较年份和日期('Y-m-d')

在PHP中比较年份和日期('Y-m-d'),php,mysql,Php,Mysql,我在mysql中有这样的DateFormat列表 -------------------------- born_form | born_to -------------------------- 1994-10-04 | 2012-05-13 1987-05-03 | 2010-03-25 我输入的数据仅为1999年 我正在使用sql查询 Select * from table_name where "1999" BETWEEN born_from AND born_to

我在mysql中有这样的DateFormat列表

--------------------------
born_form   |   born_to
--------------------------
1994-10-04  |  2012-05-13
1987-05-03  |  2010-03-25
我输入的数据仅为1999年

我正在使用sql查询

Select * from table_name where
"1999" BETWEEN born_from AND born_to
但是它不起作用

这个怎么样:

   Select * from table_name where
    year(born_from)>=1999 AND year(born_to)<=1999
试试这个

      Select * from table_name where "1999" BETWEEN YEAR(born_from) AND YEAR(born_to)
使用年份并按如下方式执行:

SELECT
  *
FROM
  table_name
WHERE
  1999 BETWEEN YEAR(born_from) AND YEAR(born_to)
与其他答案相比,此查询可能使用索引


从表名中选择*,其中yearborn\u from>1999和yearborn\u to我想您可以使用这个

从表格名称中选择*,其中
1999年在YEARborn_from和YEARborn_to之间

你说我只有1999年的输入是什么意思year@Smamatti:原始查询中出现了什么错误,以至于您认为您的提案解决了该问题?@Smamatti:BETWEEN使用表达式进行操作。所以它是介于expr2和expr3之间的expr1,表达式可以是一个常量值、列、一些数学表达式或其他表达式。虽然1999年从来都不是一个正确的日期-通过在mysql之间搜索发现,您是否感到惊讶-@谢谢你纠正我。为了避免混淆,我删除了我的第一条评论。没有索引值“介于”之间。如果索引是相关的,只需将1999年转换为1999-1-1和1999-12-31的日期即可comparing@bitoshi.n:我无法想象不建议使用索引的任何情况:-S@bitoshi.n:那其实已经不重要了,因为OP已经选择了一个包含单词之间的魔法;-+1.团结
Select * from table_name
where born_to >= '1999-01-01' AND born_from <= '1999-12-31'