gpt4 book ai didi

php - 查询日期中的月、日、年

转载 作者:行者123 更新时间:2023-11-29 08:26:57 29 4
gpt4 key购买 nike

在我的情况下,我在 mySQL 中有一个日期字段,我曾经通过下面的代码获取变量的值。当我查询诸如“08-28-1989”之类的完整日期时,这是正确的。

mySQL:

SELECT COUNT(*)
FROM content
where dateReceived='{$approved_date}'
and description='{$description}'

PHP:

   $approved_year   = $_POST["approved_year"];
$approved_month = $_POST["approved_month"];
$approved_day = $_POST["approved_day"];
$approved_dt = strtotime($approved_year."-".$approved_month."-".$approved_day);
$approved_date = date("Y-m-d",$approved_dt);



如果我说用户只输入“08”(仅限月份),那么它会显示该月的所有记录,无论日和年,如何使其更加动态。或者用户只需输入月份和年份,然后将其查询到我的数据库。

这也是我的 HTML:

<p>
Date Approved
<select name="approved_month">
<?php
$month = array(" ","January","February","March","April",
"May","June","July","August",
"Septembe","October","November","December");
for($x=0;$x<12;$x++){
echo "<option value=\"".$x."\">".$month[$x]."</option>";
}
?>
</select>
<input type="text" name="approved_day" value="" size="2" />
<input type="text" name="approved_year" value="" size="10" />
</p>

最佳答案

在 mysql 端执行此操作的一种方法是使用 MONTH()YEAR()功能。

SELECT * 
FROM Table1
WHERE MONTH(date) = 5;

SELECT *
FROM Table1
WHERE MONTH(date) = 5
AND YEAR(date) = 2013;

注意:这种方法(在date列上使用函数)的缺点是在date列上不会使用任何索引。

第二个查询可以使用 BETWEEN 重写

SELECT * 
FROM Table1
WHERE date BETWEEN '2013-05-01' AND '2013-05-31';

可以使用 relative date formats 在 php 中轻松构建此类查询的月份的第一个日期和最后一个日期

这里是SQLFiddle 演示

关于php - 查询日期中的月、日、年,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17691869/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com