首页 > 解决方案 > 使用 SQL(也可能是正则表达式)从列中提取部分数据

问题描述

我在 MS Access 中使用 SQL。我从 Excel 导入的其中一列的日期和时间的格式很奇怪,如下所示:

太平洋标准时间 2021 年 1 月 12 日上午 07:55:14

MS Access 无法将其识别为日期和时间,因此不会将其转换为此类。我正在尝试自动化一些步骤,所以不希望用户在 excel 中手动分隔此列并转换为 DD-MM-YYYY 格式。

我只需要提取长度几乎总是 11 个字符的日期。但是,由于我是新手,因此我无法对其进行解析,并且现有的帖子并没有太大帮助(或者我可能无法理解)。

标签: sqlms-accessparsing

解决方案


假设值始终以“ PST”(或空格后面的任何 3 个字符)结尾,请考虑:

CDate(Left([fieldname], InStrRev([fieldname], " ")-1))

这将返回一个有效的日期/时间。格式化可用于仅提取 m/d/y 部分。请注意,Format 函数返回一个字符串,而不是真正的日期。

Format(Left([fieldname], InStrRev([fieldname], " ")-1), "mm/dd/yyyy")


推荐阅读