【问题标题】:Selecting dates from today and beyond选择今天及以后的日期
【发布时间】: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


【解决方案1】:

这很奇怪。检查 cfquery 标签,如果它有 maxrows 以防万一。

【讨论】:

  • 标签中没有maxrows。
  • 只是好奇:为什么您的查询中有 DELEGATES 而您的 JOIN 应该在 CMS.dbo.Settings 上。 FROM CMS.dbo.Settings 内部加入 CMS.dbo.Sites on DELEGATES.dbo.Settings.ID = CMS.dbo.Sites.ID
  • 因为我试图编辑我的实际表名以便在此处发布,但忘记编辑了。
【解决方案2】:

检查 DSN 中的所有设置。你可能有一些东西在那里。欢迎您发布高级屏幕的屏幕截图供我们查看。

【讨论】:

    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    • 2014-09-24
    相关资源
    最近更新 更多