Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.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从SQL Server 2008日期时间字段中选择今天的记录_Php_Sql - Fatal编程技术网

PHP从SQL Server 2008日期时间字段中选择今天的记录

PHP从SQL Server 2008日期时间字段中选择今天的记录,php,sql,Php,Sql,如果我使用此代码: //Query and connect $query4 = "SELECT jobno, cdate FROM delivery_comments;"?> <?php $results4 = sqlsrv_query($connIntranet, $query4);?> <?php echo $query4;?> <table> <?php //Loop through array and display results in

如果我使用此代码:

//Query and connect
$query4 = "SELECT jobno, cdate FROM delivery_comments;"?>
<?php $results4 = sqlsrv_query($connIntranet, $query4);?>
<?php echo $query4;?>

<table>
<?php //Loop through array and display results in table
while ($row4 = sqlsrv_fetch_array($results4)){
$date2 = $row4['cdate'];
$jobno2 = $row4['jobno'];
?>
<tr>
<td><?php echo $jobno2;?>, </td>
<td><?php echo date_format($date2, 'Y-m-d');?></td>
</tr>
<?php } ?>
</table>
如何编写WHERE子句,使其只返回今天的结果

_____更新_____

我已尝试了以下所有选项,并继续获得:

Warning: sqlsrv_fetch_array() expects parameter 1 to be resource, boolean given in C:\inetpub\wwwroot\portal2\short_delivery\delivery_short4.php on line 22
这是我目前的代码:

<?php
//Query and connect
$query4 = "SELECT jobno, cdate FROM delivery_comments WHERE date(cdate) = CURDATE()" ;
$results4 = sqlsrv_query($connIntranet, $query4);?>
<?php echo $query4;?>

<table>
<?php //Loop through array and display results in table
while ($row4 = sqlsrv_fetch_array($results4)){
$date2 = $row4['cdate'];
$jobno2 = $row4['jobno'];
?>
<tr>
<td><?php echo $jobno2;?>, </td>
<td><?php echo $date2;?></td>
</tr>
<?php } ?>
</table>
这些不会返回错误,但也不会返回结果

SELECT jobno, cdate FROM delivery_comments where cdate = cast(getdate() as date)
SELECT jobno, cdate FROM delivery_comments where cdate = GETDATE()
如果删除where子句,则会出现以下错误:

Catchable fatal error: Object of class DateTime could not be converted to string in C:\inetpub\wwwroot\portal2\short_delivery\delivery_short4.php on line 28

如果我在没有where子句的情况下重新添加日期格式,它将显示所有日期:

您必须从
cdate
中删除时间部分,因为
2016-02-17 09:10:56
将不等于
2016-02-17
。试试这个:

 "SELECT jobno, date(cdate) FROM delivery_comments where CONVERT(date,cdate)date() = CONVERT(date,GETDATE()) ;"
像这样使用它

<?php $query4 = "SELECT jobno, CONVERT(date,cdate) as cdate1 FROM delivery_comments where CONVERT(date,cdate) = CONVERT(date,GETDATE()) " ;?>
<?php $results4 = sqlsrv_query($connIntranet, $query4);
if(!$results4)
{
   print_r( sqlsrv_errors(), true);
}
?>
<?php echo $query4;?>

<table>
<?php //Loop through array and display results in table
while ($row4 = sqlsrv_fetch_array($results4)){
$date2 = $row4['cdate1'];
$jobno2 = $row4['jobno'];
?>
<tr>
<td><?php echo $jobno2;?>, </td>
<td><?php echo $date2;?></td>
</tr>
<?php } ?>
</table>

, 

MS SQL Server提供了将当前日期获取为
GETDATE()
的函数,因此您可以将查询定义为

"SELECT jobno, cdate FROM delivery_comments where cdate = GETDATE();"

您可以通过
CURDATE()
函数获取当前日期。 将查询修改为:

"SELECT jobno, cdate FROM delivery_comments where WHERE date(cdate) = CURDATE();"
请尝试以下查询:

"SELECT jobno, cdate FROM delivery_comments where cdate = cast (GETDATE() as DATE);"

where cdate=cast(getdate()as date)
。我已经试过了,得到了:SELECT jobno,cdate FROM delivery_comments where date(cdate)=CURDATE();警告:sqlsrv_fetch_array()希望参数1是resource,布尔值在第23行的C:\inetpub\wwwroot\portal2\short_delivery\delivery_short4.php中给出,“date”不是可识别的内置函数名这只是不返回任何结果请尝试从php代码中删除“date_format()”。然后检查。
"SELECT jobno, cdate FROM delivery_comments where WHERE date(cdate) = CURDATE();"
"SELECT jobno, cdate FROM delivery_comments where cdate = cast (GETDATE() as DATE);"