2017-08-07 53 views
0

我有一个问题与当前的日期和时间 这个比较来自Oracle数据库的日期从Oracle日期进行比较的是我的查询:Select name,adress,delivery_date from business_db 的DELIVERY_DATE列显示我在这个格式的日期:2010-07- 21 17:00:00.000分贝与当前日期

我需要只显示优于当前日期

我用它来获取当前日期和时间DB行:

date_default_timezone_set('Europe/Paris'); 
$date = date('d-m-Y H:i:s'); 

,并试图比较简单的日期“其中DELIVERY_DATE> $日期” ,但它没有工作

谢谢

+2

''DD-MM-YYYY HH:MI:ss''似乎是一个有效的格式,其中as('dmY H:i:s');似乎不是。所以'从business_db选择名称,地址,delivery_date WHERE delivery_date> = to_date('2016-07-21 17:00:00','YYYY-MM-DD HH:MI:SS')' – xQbert

+0

我不熟悉PHP,但我认为PHP和Oracle日期之间没有任何自动转换,因此您需要检查SQL通过PHP日期时看到的确切内容以及哪些因素可以影响双方的数据,例如'nls_date_format'。 –

+0

为什么不在查询中使用'current_date'并让oracle做那件事? –

回答

0

您可以使用SYSDATE

select Select name,adress,delivery_date from business_db 
    where to_date('08.08.2017 12:30','DD.MM.YYYY HH24:MI') > sysdate; 

SYSDATE是日期格式Oracle系统日期。

用PHP可变它应该是类似的东西

PHP的部分:

$date = '08.08.2017 12:30'; 

SQL部分:

select Select name,adress,delivery_date from business_db 
    where to_date($date,'DD.MM.YYYY HH24:MI') > sysdate;