【问题标题】:php mysql database date range formphp mysql数据库日期范围表格
【发布时间】:2017-04-28 15:17:42
【问题描述】:

我需要访问者更改数据范围,我尝试使用 mysql 代码将变量数据范围设置为“开始”和“结束”但不起作用,进一步必须采用如下格式:'2016-10-24 08:00:00 '2016-10-20 08:00:00' 在 phpmyadmin 上

<script type="text/javascript">
      $(function(){
        $("#date_range").submit(function(){
          $.ajax({
            type:"POST",
            url:".weekly_concession.php?" + new Date().getTime(),
            dataType:"text",
            data:$(this).serialize(),
            beforeSend:function(){
              $("#loading").show();
            },
            success:function(response){
                $("#report_result").append(response);
                $("#loading").hide();
            } 
          })
          return false;
        });
    });
    </script>


<div align="center">
<form name="date_range" id="date_range" method="post" style="width: 454px" >
<fieldset>
<legend>Start Date : </legend>
<input type="text" value="" placeholder="YYYY-MM-DD" name="start" id="datepicker"/>
<legend>End Date : </legend>
<input type="text" value="" placeholder="YYYY-MM-DD" name="end" id="datepicker2"/>
<button class="btn btn-inverse" type="submit" name="click" >
<i class="icon icon-print icon-white"></i> 
Run Report</button>
</fieldset>
</form></div>
<br><br>


$result = mysql_query("SELECT COUNT(489153X91X359) AS jidlo_1_BAD FROM lime_survey_489153
WHERE 489153X91X359 LIKE '%BAD%' AND startdate BETWEEN '$datepicker' AND '$datepicker2' ");

$result = mysql_query("SELECT COUNT(489153X91X359) AS jidlo_1_OK FROM lime_survey_489153
WHERE 489153X91X359 LIKE '%OK%' AND startdate BETWEEN 'start' AND 'end' ");

$values7 = '';

while($row = mysql_fetch_array($result)) {
  $values7 .= $row['jidlo_1_OK'];
}

【问题讨论】:

  • 我无法理解您想要什么?是否要过滤记录between 日期范围?
  • 199184X87X343 是一个令人痛苦的列名称
  • 现在,当我想让这个脚本工作时,我需要这样写:'2016-09-02 08:00:00' 但我希望访问者只能选择日期,不要以任何形式写出来。

标签: php mysql database date range


【解决方案1】:

你的问题包含这个

        startdate > '2016-10-20 08:00:00' AND '2016-09-02 08:00:00'

但是,我想你希望它是

       startdate >=  '2016-09-02 08:00:00'
   and startdate <   '2016-10-20 08:00:00'

或许

       startdate  BETWEEN '2016-09-02 08:00:00' AND '2016-10-20 08:00:00'

注意BETWEEN 采用value BETWEEN low AND high 的形式。

如果您询问访问者首选的时区,您的问题甚至都不清楚。

【讨论】:

  • 我尝试但不工作:(抱歉 CTRL+K 不工作)SELECT 489153X91X359 AS hodnota, COUNT(id) AS soucet FROM lime_survey_489153 WHERE startdate >='2016-08- 16 08:00:00' AND startdatete 489153X91X359 != '' GROUP BY 489153X91X359
猜你喜欢
  • 1970-01-01
  • 2016-06-10
  • 2014-10-26
  • 1970-01-01
  • 1970-01-01
  • 2013-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多