代码之家  ›  专栏  ›  技术社区  ›  hisoka

MS Access查询-不兼容类型(日期)

  •  0
  • hisoka  · 技术社区  · 7 年前

    我想在过去的5年里得到一系列的记录。不幸的是,我的列上的数据类型是一个格式有点奇怪的字符串。例如,2018年12月将表示为: 2018/012

    我尝试了以下查询:

    SELECT tbl.StrDate
    FROM tbl
    WHERE DateValue(StrDate) > DateAdd("yyyy", -5, Date());
    

    查询工作了几分之一秒(如我看到的结果中所示)。。。但是,它会弹出一个显示“有” 查询条件中不兼容的类型 #Name ?

    我不太清楚是什么导致了这个问题。谢谢你的帮助。

    注意:我使用的是法文版的access2010,这里的措辞可能略有不同。

    2 回复  |  直到 7 年前
        1
  •  1
  •   Gustav    7 年前

    尝试忽略无效的“日期”:

    SELECT tbl.StrDate
    FROM tbl
    WHERE DateValue(IIf(IsDate(StrDate), strDate, Date()) > DateAdd("yyyy", -5, Date())
    

    或者列出并更正这些“日期”:

    SELECT tbl.StrDate
    FROM tbl
    WHERE NOT IsDate(StrDate);
    
        2
  •  0
  •   Gordon Linoff    7 年前

    left() val()

    WHERE VAL(LEFT(StrDate, 4)) > DateAdd("yyyy", -5, Date());
    

    事实上, LEFT()

    推荐文章