validation - 如何在 Access Query 中使用 CDATE 在转换前验证/清理文本日期
问题描述
我正在使用 Access Query 重新格式化和连接多个文件以创建输出文件。我正在使用一个以 YYYYMMDD 文本格式提供日期的输入文件。我正在尝试使用 CDATE & mid/left/right 转换为日期格式。但是,我发现文件中的某些日期无效,例如 2/30/2019 (20190230),这导致数据不匹配错误。我无法控制提供此文件的系统,因此我需要能够在我的数据库中处理此问题。
我试过IIF(ISERROR(CDATE()),NULL,CDATE())
无济于事。当前表达式:
IIf(IsError(CDate(Mid([firstofSTART_DATE],5,2) & "/" &
Right([firstofSTART_DATE],2) & "/" &
Left([firstofSTART_DATE],4))),Null,CDate(Mid([firstofSTART_DATE],5,2) & "/" &
Right([firstofSTART_DATE],2) & "/" & Left([firstofSTART_DATE],4)))
我可以将错误日期更正为可以轻松过滤掉的任何内容(例如 NULL 或“”)。
解决方案
您可以使用DateSerial:
DateSerial(Mid([firstofSTART_DATE],1,4), Mid([firstofSTART_DATE], 5,2), Mid([firstofSTART_DATE],7,2))
和/或过滤:
IsDate(Format([firstofSTART_DATE], "@@@@\/@@\/@@"))
推荐阅读
- c++ - mathGl / MinGW 未定义参考 Netbeans IDE
- javascript - Javascript 循环下拉列表选项
- node.js - MongoDB 的更新插入速度非常慢
- javascript - Javascript 禁止访问直接在浏览器中键入的页面
- ruby-on-rails - 在 Rails 5 中发布请求
- r - 将列表列表写入 R/Shiny 中的文件
- java - JNI DETECTED ERROR IN APPLICATION(使用多线程在 android 中操作位图时出错)
- c# - 在 C# 中,如何使用 POST 方法将数据从 SQL Server 发送到 HTTP 请求?
- javascript - 茉莉花与帮手
- python - 文件 ”
",第 1 行,在 NameError: 名称“”未在 ATOM 中定义