【发布时间】:2017-05-02 19:44:36
【问题描述】:
我有一个似乎有问题的 SQL 查询。当我直接针对表(在 SQL Server Management Studio 中)运行它时,它工作正常。但是,当我将它插入我的 ColdFusion(我知道是旧的)时,它会吐出不同的结果。
我相信这里的责任在于getdate() 函数,但我不确定是否有办法解决。
当我在 SQL 中运行它时,我得到了 53 个结果,这是正确的。
SELECT *
FROM CMS.dbo.Settings
Inner Join CMS.dbo.Sites on CMS.dbo.Settings.ID = CMS.dbo.Sites.ID
WHERE CMS.dbo.Settings.EndDate >= getdate()
AND CMS.dbo.Sites.Active = 1
只要我将它插入 cfquery。我得到了两 (2) 个结果的记录。我需要做些什么来使这个更具体吗?好久没做CF了。
【问题讨论】:
-
(编辑)由于没有涉及到 CF 变量,CF 只是将 SQL 传递给您的数据库执行。因此,SSMS 和 CF 的结果应该没有任何差异 - 除了测试之间经过的几秒钟之外。这是否相关取决于数据本身。我将首先 a) 验证结果是可重复的,b) 检查“丢失”51 条记录的实际日期和时间,看看是否有正当理由。 ...
-
是否因为日期只有几秒/分钟的未来而被排除在外?记录在此期间是否被修改过,等等,...? c) 在 CF 端,cfquery 是否被缓存?
-
要测试 Leigh 的理论,请将 getDate() 替换为硬编码值,看看结果是否相同。
-
@Leigh 我已经检查了所有日期,它们都在未来。 2018 年及以上。所以我知道这不是问题,这就是为什么我没有将查询降到第二个。
-
可能是您正在查询不同的数据库,还是只有我这样做?
标签: sql-server coldfusion