如何在查询中设置odbc日期格式

Hoe to set odbc dateformat in query

我已将 Ms Access 数据库中的数据提取为 PHP JSON 格式。我在查询中传递了日期参数。数据库数据类型为 date/time。查询中需要日期格式 mm/dd/yyyy。

我已经给出结果

ConnectedResource id #4{"status":0,"0":[]}

print_r($stmt)

Result Resource id #4 and gone else statment.

<?php

    $reg = $_GET['reg'];
    $fdate = $_GET['fdate'];
    $tdate = $_GET['tdate'];
    $yid = $_GET['yid'];


    $sql = "select a.RegNo,c.Standard,b.RollNo,d.Division,b.Std_Name as StudentName,AttendanceDate,Attendance_Type,Remark 
                                         from (((Attendance_mas as a 
                                         inner join Std_Reg as b on a.RegNo = b.RegNo) 
                                         inner join StandardMaster as c on a.Standard = c.stdid) 
                                         inner join DivisionMaster as d on a.Division =d.DivisionID) 
                                         where a.RegNo= $reg and a.AttendanceDate between ($fdate) and 
                                         ($tdate1) and a.yearid = $yid Order by AttendanceDate desc";
    //$sql = "select * from Std_Reg";

    $stmt = odbc_exec($conn, $sql);

print_r($stmt);
$result = [];
do {
    while ($row = odbc_fetch_array($stmt)){
       $result[] = $row; 
    }
} while (odbc_next_result($stmt));

if(count($result)>0)
{
    $result1['status']=1;//"Login successfully";
    array_push($result1,$result);
}
else
{
     //$result[]="null";
    $result1['status']=0;//"Record not found";
    array_push($result1,$result);
}
odbc_free_result($stmt);
odbc_close($conn); //Close the connection first

echo json_encode($result1); //You will get the encoded array variable

?>

我建议使用 PDO PREPARED STATEMENT 将参数绑定到您的查询:

$reg = $_GET['reg'];
$fdate = date("m/d/Y", strtotime($_GET['fdate']));//THis will format the date
$tdate = date("m/d/Y", strtotime($_GET['tdate']));
$yid = $_GET['yid'];

$sql = "select a.RegNo,c.Standard,b.RollNo,d.Division,b.Std_Name as StudentName,AttendanceDate,Attendance_Type,Remark 
                                     from (((Attendance_mas as a 
                                     inner join Std_Reg as b on a.RegNo = b.RegNo) 
                                     inner join StandardMaster as c on a.Standard = c.stdid) 
                                     inner join DivisionMaster as d on a.Division =d.DivisionID) 
                                     where a.RegNo= ? and a.AttendanceDate between (?) and 
                                     (?) and a.yearid = ? Order by AttendanceDate desc";

$res = odbc_prepare($conn, $sql);
if(!$res) die("could not prepare statement ".$sql);
$parameters = array($reg,$fdate,$tdate,$yid);
if(odbc_execute($res, $parameters)) {
   //Fetch the result
} else {
  // handle error
}