sql - 使用 SQL(也可能是正则表达式)从列中提取部分数据
问题描述
我在 MS Access 中使用 SQL。我从 Excel 导入的其中一列的日期和时间的格式很奇怪,如下所示:
太平洋标准时间 2021 年 1 月 12 日上午 07:55:14
MS Access 无法将其识别为日期和时间,因此不会将其转换为此类。我正在尝试自动化一些步骤,所以不希望用户在 excel 中手动分隔此列并转换为 DD-MM-YYYY 格式。
我只需要提取长度几乎总是 11 个字符的日期。但是,由于我是新手,因此我无法对其进行解析,并且现有的帖子并没有太大帮助(或者我可能无法理解)。
解决方案
假设值始终以“ PST”(或空格后面的任何 3 个字符)结尾,请考虑:
CDate(Left([fieldname], InStrRev([fieldname], " ")-1))
这将返回一个有效的日期/时间。格式化可用于仅提取 m/d/y 部分。请注意,Format 函数返回一个字符串,而不是真正的日期。
Format(Left([fieldname], InStrRev([fieldname], " ")-1), "mm/dd/yyyy")
推荐阅读
- c# - 如何简化这个“清除”命令?
- javascript - 悬停在线图Chart.js后旧数据闪烁
- postgresql - 如何在 Postgresql 中删除空值并使其变为 10 行?
- git - 如何将子模块添加到我现有的 repo,在本地进行更改,并将所有更改推送到我的 github?
- vue.js - 无法从 Vuex [Quasar] 访问商店
- android - Wear 操作系统上的自定义扩展通知实现
- linux - 我无法在 Ubuntu 上安装 xde expo
- ruby-on-rails - 在资产预编译期间访问数据库/模型对象
- excel - 创建新工作簿,然后将该 WB 名称用作变量
- javascript - 用 .then 链接 await 并尝试 catch 语法