【问题标题】:Sorting Date/Time Field By Date按日期对日期/时间字段进行排序
【发布时间】:2016-06-13 14:33:33
【问题描述】:

我有一张表,其中有一个日期/时间字段 [shipStatusDate]。我只需要按日期排序,但日期/时间字段中有一些空值。我可以按 BETWEEN 日期排序。我提供了用于对月份值进行排序的日期之间的字符串。我试过 Cdate、DateValue() 没有成功,我得到类型不匹配,我怀疑它与 [shipStatusDate] 中的空值有关。感谢您在高级的帮助。

[status] like ""*" & statusShip & "*"" AND [shipStatusDate] BETWEEN Date()-30     AND Date()

【问题讨论】:

  • 编辑查询以排除 shipStatusDate 为空的位置?这将证明它是否是您问题的根源。如果是,请查看使用 NZ 功能解决问题(详情:techonthenet.com/access/functions/advanced/nz.php
  • NZ 功能有帮助! Gustav 和 questioneverything 都对示例有所帮助。感谢您提供该网站上很多有用信息的链接!

标签: sql ms-access vba


【解决方案1】:

你可能会追求这样的东西:

Dim FirstDate As Date
Dim LastDate As Date

' and then
" ... [status] Like '*" & statusShip & "*' And (Nz([shipStatusDate], Date()) Between #" & Format(FirstDate, "yyyy\/mm\/dd") & "# And #" & Format(LastDate, "yyyy\/mm\/dd") & "#)" 

【讨论】:

    【解决方案2】:

    取决于你想对空记录做什么。要么将它们过滤掉,要么您可以通过以下方式将它们转换为像今天这样的有效日期:

    [status] like ""*" & statusShip & "*"" AND nz([shipStatusDate],date()) BETWEEN Date()-30     AND Date()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-11
      • 1970-01-01
      • 2017-04-19
      • 2013-10-06
      • 2011-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多