相同的SQL在Oracle控制台工作,而在php不是


Same SQL in Oracle console works and in php not

我有一个问题与这个sql:

select DATE_FIELD from table where
DATE_FIELD >= to_date(to_char(sysdate, 'yyyy/mm/dd'), 'yyyy/mm/dd')
and
DATE_FIELD <= to_date(to_char(sysdate, 'yyyy/mm/dd')+1, 'yyyy/mm/dd')

我想要今天00:00:00到明天00:00:00的日期。

DATE_FIELD字段的DATA TYPE是DATE

在Tora/Toad中工作,在php中不工作。

错误代码:

PHP Warning:  oci_execute(): ORA-01722: invalid number

您的查询:

select DATE_FIELD
from table
where DATE_FIELD >= to_date(to_char(sysdate, 'yyyy/mm/dd'), 'yyyy/mm/dd') and
      DATE_FIELD <= to_date(to_char(sysdate, 'yyyy/mm/dd')+1, 'yyyy/mm/dd')
----------------------------------------------------------^

我不知道这将在任何地方工作,因为to_char( . . . ) + 1应该失败。嗯,我可以想象一个神秘的设置,它可以识别'yyyy/mm/dd'日期格式并将字符串转换回日期以添加1。

我建议更简单的:

where DATE_FIELD >= trunc(sysdate) and DATE_FIELD < trunc(sysdate + 1)
相关文章: