Sql Firebird SELECT DATEDIFF查询不返回任何内容
我使用Eclipse的“数据库开发”透视图对Firebird数据库运行查询。有一个特别的字段,Sql Firebird SELECT DATEDIFF查询不返回任何内容,sql,eclipse,firebird,firebird2.5,Sql,Eclipse,Firebird,Firebird2.5,我使用Eclipse的“数据库开发”透视图对Firebird数据库运行查询。有一个特别的字段,studydatetime,给我带来了问题。它是一个时间戳字段,用于保存体检的日期和时间。我有一个只保存日期的文本文件,我需要匹配这两个来填充文本文件中的一些空白。但是当我运行类似 select datediff(day,1,'2017-07-26') from worklistdisplay rows 1; select datediff(day,'2017-07-01','2017-07-
studydatetime
,给我带来了问题。它是一个时间戳字段,用于保存体检的日期和时间。我有一个只保存日期的文本文件,我需要匹配这两个来填充文本文件中的一些空白。但是当我运行类似
select datediff(day,1,'2017-07-26')
from worklistdisplay
rows 1;
select datediff(day,'2017-07-01','2017-07-26')
from rdb$database;
我什么也得不到——甚至连一个没有行的查询也得不到。甚至当我运行类似于
select datediff(day,1,'2017-07-26')
from worklistdisplay
rows 1;
select datediff(day,'2017-07-01','2017-07-26')
from rdb$database;
我得到了同样的结果。Eclipse结果窗口中的“状态”选项卡显示
(0 rows affected)
Elapsed Time: 0 hr, 0 min, 0 sec, 25 ms.
但是没有返回结果
我在Firebird中使用“genericJDBC_1.x”连接类型,驱动程序文件为“jaybird-full-3.0.1.jar”。DB版本是2.5.4。最新版本将有所帮助
select datediff(day,cast('2017-07-01' as date),cast('2017-07-26' as date)) from rdb$database
这个返回25假设worklistdisplay是一个表,那么像从worklistdisplay选择计数(*)记录这样非常简单的东西呢。如果返回记录,请在不使用别名
records
的情况下重试。如果没有返回记录,请尝试问题中的查询,但使用别名。@DanBracukselect*from worklistdisplay wd rows 1代码>返回记录。您建议的查询也是如此。这将使查询留在您的问题中,但函数结果有一个别名。@DanBracuk仍然是空的-即我尝试了从rdb$数据库中选择datediff(day,'2017-07-01','2017-07-26')作为天数代码>得到了相同的(否)结果。我在WHERE子句中使用DATEDIFF也得到了相同的结果;但这可能是另一个问题。谢谢-我想我原以为这种格式的字符串与日期相比会自动转换为日期。