繁体   English   中英

在Oracle控制台中可以使用相同的SQL,而在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字段的数据类型为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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM