Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.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的where子句中使用TRUNC执行SQL语句时,我没有得到任何结果_Php_Sql_Oracle - Fatal编程技术网

在PHP的where子句中使用TRUNC执行SQL语句时,我没有得到任何结果

在PHP的where子句中使用TRUNC执行SQL语句时,我没有得到任何结果,php,sql,oracle,Php,Sql,Oracle,我在Oracle数据库中有一个名为reservation的表,它有一个名为date\u reservation的datetime列。我有以下代码: $sql = "SELECT COUNT(*) AS numberrows FROM reservation WHERE TRUNC(date_reservation)=TO_DATE('15/06/2015', 'dd/mm/yyyy')"; $stid = $this->bd->execute($sql); $row = $this-

我在Oracle数据库中有一个名为reservation的表,它有一个名为date\u reservation的datetime列。我有以下代码:

$sql = "SELECT COUNT(*) AS numberrows FROM reservation WHERE TRUNC(date_reservation)=TO_DATE('15/06/2015', 'dd/mm/yyyy')";
$stid = $this->bd->execute($sql);
$row = $this->bd->get_row($stid, 0);
echo $row['NUMBERROWS'];
表格内容如下:

ID    ...     DATE_RESERVATION
1             13/06/2015 12:00:00
2     ...     15/06/2015 09:00:00
3     ...     15/06/2015 11:00:00
当我执行我的PHP代码时,我得到0,我应该得到2。 但是如果我在DB管理工具中执行这个sql语句,我会得到2

如果我从代码$sql=SELECT COUNT*AS numberrows中删除WHERE子句,我将获得保留表中的行数


所以我猜PHP中的TRUNC有问题。我怎样才能解决它呢?

似乎您错过了第1行的一个半列:

$sql = SELECT COUNT(*) AS numberrows FROM reservation WHERE TRUNC(date)=TO_DATE('15/06/2015', 'dd/mm/yyyy');
$stid = $this->bd->execute($sql);
$row = $this->bd->get_row($stid, 0);
echo $row['NUMBERROWS'];

也许是因为这个

第一行缺少冒号:

$sql = "SELECT COUNT(*) AS numberrows FROM reservation WHERE TRUNC(date)=TO_DATE('15/06/2015', 'dd/mm/yyyy')";
$stid = $this->bd->execute($sql);
$row = $this->bd->get_row($stid, 0);
echo $row['NUMBERROWS'];

现在试试这个。如果您仍然没有得到准确的结果,请检查您在查询中使用的日期格式。

您必须注意的第一件事是truncdate的内容。检查日期列中的数据,日期类型的格式必须与截止日期'15/06/2015','dd/mm/yyyy'的格式完全正确。

我猜这与PHP中的日期掩码有关,我不懂PHP,所以它没有什么用处,不使用trunc就可以解决它。当你获得大量数据时,速度会非常慢。相反,使用where date>=yourdate和date