【发布时间】:2017-08-07 12:46:59
【问题描述】:
我在将 Oracle 数据库中的日期与当前日期和时间进行比较时遇到问题
这是我的查询:Select name,adress,delivery_date from business_db
delivery_date 列以这种格式显示日期:2010-07-21 17:00:00.000
我只需要显示优于当前日期的数据库行
我用它来获取当前日期和时间:
date_default_timezone_set('Europe/Paris');
$date = date('d-m-Y H:i:s');
并尝试使用简单的“ where delivery_date > $date ”比较日期 但它没有工作
谢谢
【问题讨论】:
-
'dd-mm-YYYY HH:mi:ss'似乎是一种有效的格式,其中 ('d-m-Y H:i:s');似乎不是。所以Select name,adress,delivery_date from business_db WHERE delivery_date>=to_date('2016-07-21 17:00:00', 'YYYY-MM-DD HH:MI:SS') -
我不熟悉 PHP,但我认为 PHP 和 Oracle 日期之间没有任何自动转换,因此您需要准确检查 SQL 在传递 PHP 日期时看到的内容以及什么双方的因素都会对其产生影响,例如
nls_date_format。 -
为什么不在查询中使用
current_date并让oracle 来做这件事? -
@xQbert 感谢您的回答,但我试图将 delivery_date 字段与当前日期(系统日期)进行比较,而不是 2016-07-21 ...,但您可以看到输出的查询还显示 3 位数的毫秒数,这使得比较两者变得更加困难
-
@WilliamRobertson 谢谢