在PHP脚本中选择日期范围和SQL之间的数据

在PHP脚本中选择日期范围和SQL之间的数据,php,sql,date,Php,Sql,Date,可能重复: 女士们,先生们,晚上好!我试图在一个php发布脚本上拉取一个查询,该脚本将拉取信息 SELECT `id` FROM `leads` WHERE `status` = 'Passed' AND `campaign_id` = '22d0cf4f-0f81-28b1-d8dc-4f046bd1d8ee' 原来的路线是 $id_query = mysql_query("SELECT `id` FROM `leads` WHERE `status` =

可能重复:

女士们,先生们,晚上好!我试图在一个php发布脚本上拉取一个查询,该脚本将拉取信息

SELECT  `id`
FROM    `leads`
WHERE   `status` = 'Passed'
  AND   `campaign_id` = '22d0cf4f-0f81-28b1-d8dc-4f046bd1d8ee'
原来的路线是

$id_query  =  mysql_query("SELECT  `id` FROM  `leads` WHERE  `status` =  'Passed' AND     'campaign_id' =  '22d0cf4f-0f81-28b1-d8dc-4f046bd1d8ee'");<br>
$id = mysql_fetch_row($id_query);<br>
echo $id[0];
但显然,这是行不通的。我正在研究使用JOIN和add

AND 'datesubmitted_c' BETWEEN Date_Add(curDate(), INTERVAL -65 YEARS) AND curDate()
我的新产品线是这样的

$id_query  =  mysql_query("SELECT  `id` FROM  `leads` WHERE  `status` =  'Passed' AND
campaign_id' =  '22d0cf4f-0f81-28b1-d8dc-4f046bd1d8ee' AND 'datesubmitted_c' BETWEEN 
Date_Add(curDate(), INTERVAL -65 YEARS) AND curDate()'");
这似乎仍然不能正常工作,有什么建议吗?

试试这个:

$id_query  =  mysql_query("
    SELECT  `id` FROM  `leads` WHERE  `status` =  'Passed' AND
    `campaign_id` =  '22d0cf4f-0f81-28b1-d8dc-4f046bd1d8ee' AND STR_TO_DATE(datesubmitted_c, '%m/%d/%y') >= Date_Add(curDate(), INTERVAL -65 YEARS) "
);
由于您只希望在过去65年内提交日期,因此不需要中间日期,而且该语法的可移植性较差

datesubmitted_c字段的类型必须为date。要验证这一点,请执行“DESC leads”;如果不是日期类型,则需要执行STR_To_date(datesubmitted,“%m/%d/%y”)作为日期
动态更改字段的类型(如果可以的话)

您今天早些时候没有问过这个问题吗?使用两个语句:小于和大于?例如,
WHERE datesubmitted\u c>“1992-09-07”和datesubmitted\u c
我确实重播了好几次帖子,所以我只是发布了我最新的、正在工作/没有工作的内容。最后一个问题似乎也到处都是=)在这种情况下,你应该编辑原始问题,而不是发布新问题。不要再问问题,编辑您的原始问题。仍然声明它是无效参数:\n我将从
leads
中选择
id
,其中
status
='Passed'和
campaign\u id
='22d0cf4f-0f81-28b1-d8dc-4f046bd1d8ee'和
datesubmitted\u c
=Date\u Add(curDate(),间隔-65年),你能做一个
描述吗?我想知道datesubmitted_c是否不是date/timedatesubmitted_c是标准的mm/dd/yyyy类型,我可以使用其他日期字段,它们具有相同的属性,但也可以发布hh:mm am/pm。这就是问题所在。如果是mm/dd/yyyy,则这些不是日期。您需要将date STR_to_date(datesubmitted_c,“%m/%d/%y”)解析为日期,以将其转换为日期/时间类型的字段
$id_query  =  mysql_query("
    SELECT  `id` FROM  `leads` WHERE  `status` =  'Passed' AND
    `campaign_id` =  '22d0cf4f-0f81-28b1-d8dc-4f046bd1d8ee' AND STR_TO_DATE(datesubmitted_c, '%m/%d/%y') >= Date_Add(curDate(), INTERVAL -65 YEARS) "
);