这个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
答案 0 :(得分:1)
您的查询:
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)