【问题标题】:how to Compare todays date with oledb date?? please help如何将今天的日期与 oledb 日期进行比较?请帮忙
【发布时间】:2009-12-09 08:33:15
【问题描述】:

我在这里需要一些帮助。需要知道如何将数据库中的日期与今天的日期进行比较。不需要非常精确。就我而言,几天就可以正常工作。我需要几天,所以我可以看看它是否需要进行传感器校准。如果日期

【问题讨论】:

    标签: c# ms-access


    【解决方案1】:

    也许DateTime.FromAODate 方法对你有用。

    【讨论】:

      【解决方案2】:

      看看这个链接

      Data type mismatch in criteria expression | Access, OleDb, C#

      如果我从评论中理解正确,您可以使用Date() 函数获取今天的日期

      类似的东西

      SELECT Table1.Col1, Date() AS Expr1
      FROM Table1
      WHERE (((Table1.Col1)<Date()));
      

      【讨论】:

      • 我不确定我是否可以使用。通过我的查询,我得到了访问日期,这个日期应该与今天的日期进行比较,看看差异是否大于 90 !!!
      • 好的,所以你想查询今天的日期?
      【解决方案3】:

      也许使用 Access 数据库引擎的临时功能,例如NOWDATEDIFF():

      SELECT column1, column2
        FROM SomeTable
       WHERE DATEDIFF('D', some_date_column, NOW) > 90;
      

      请注意,由于 Access 数据库引擎的性质,NOW 将返回客户端计算机的当前时间戳,而不是数据库文件所在计算机的时间戳,即用户可以更改其本地计算机的时钟以影响SQL 代码的功能。

      【讨论】:

      • 当问题明确指出粒度是一整天时,您为什么建议使用 Now()?
      • @David W. Fenton:出于可移植性的原因,我会使用 NOW(),即它可以很好地映射到标准 SQL 的 CURRENT_TIMESTAMP。但这与时间粒度无关,因为 Access 数据库引擎只有一种时间数据类型是 DATETIME,它总是具有一秒的粒度。正确确定一天粒度的是 DATEDIFF 函数中使用的 D 参数值。
      • @Remou:可能不会,但过早的优化不是我关心的问题。我对查询维护更感兴趣,即结构对人类读者来说更直观吗?当然,这始终是一种平衡,事情会在某个时候进行负载测试,但起点是良好的逻辑代码。
      • 它确实可以产生很大的不同,虽然这个参考不是 Access,但我认为它是相关的:blogs.lessthandot.com/index.php/DataMgmt/DataDesign/…
      • 它可以产生相对很大的差异,但是如果上面的查询在 6 毫秒内运行(就像我在我的机器上测试它时所做的那样),它有时可以产生微不足道的绝对差异.因此,“过早优化”一词中的“过早”一词。
      【解决方案4】:

      也许:

      SELECT Field, Field 
        FROM Table
       WHERE SomeDate < Date() - 90 
      

      【讨论】:

      • 对于人类读者来说,我不清楚 INTEGER 文字 90 指的是天。我更喜欢使用引擎的时间功能而不是将 DATETIME 值强制转换为 INTEGER。通过在查询中不将 DATETIME 值显式转换为 INTEGER 是否可以获得更好的性能?
      • 它是 sargable,这将在性能时间上产生巨大差异,并且很容易猜到 90 表示天,就像函数中的 'd' 表示天一样,尤其是 90 天是一个非常共同会计期间。
      • “这将对性能时间产生巨大影响”——不正确。将您的“将”一词更改为“可能”。当一个非 sargable 查询在 6 毫秒内运行时,再多的优化都不会产生巨大的差异。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-03
      • 1970-01-01
      • 1970-01-01
      • 2012-05-10
      • 2019-03-12
      相关资源
      最近更新 更多