我需要在 Access 中拆分以 MM/YYYY 和 MM/DD/YYYY 格式存储日期的文本列,以删除日期格式

Posted

技术标签:

【中文标题】我需要在 Access 中拆分以 MM/YYYY 和 MM/DD/YYYY 格式存储日期的文本列,以删除日期格式【英文标题】:I need to split a text column in Access that stores dates in MM/YYYY and MM/DD/YYYY format to remove the day format 【发布时间】:2021-06-17 15:49:25 【问题描述】:

我有一个程序可以将日期作为文本写入一个名为 Expression 的列中。有没有办法编写一个查询来删除月份中的某一天?我需要它是我可以与多人共享以在多个数据库中使用的东西。存储值的格式示例为 6/2021、06/2021 和 06/01/2021。

【问题讨论】:

为什么日期格式不一致?可以修改程序吗? 我无法修改程序。它就是这样写的。 【参考方案1】:

您可以在查询中使用IIf来比较数据的长度,并根据需要填充/拆分。比如:

SELECT 
    Expression, 
    IIf(Len([Expression])=6,"0" & [Expression],IIf(Len([Expression])=7,[Expression],IIf(Len([expression])=10,Left(Expression,2) & "/" & right(expression,4)))) AS OutputData
FROM tblFormatDate;

您可能需要再添加几个IIfs,以及最后的错误返回语句。如果数据开始变得混乱,那么您可能需要考虑创建一个自定义 VBA 函数,以使流程更易于理解。

问候,

【讨论】:

如果字符串长于 7,似乎只有一天部分(假设年份总是 4 位数)。这可能会缩短 IIf() 表达式。 Left() 仅在月份始终为 2 个字符时才有效。可以使用 Val() 代替。 是的,但我们不知道所有数据的格式。就个人而言,我会使用一个 VBA 函数,它使用 Split,对元素进行计数,然后根据需要使用正确的分隔符重新加入。 我只是将该代码复制并粘贴到查询中,更改了表并且它工作。谢谢。

以上是关于我需要在 Access 中拆分以 MM/YYYY 和 MM/DD/YYYY 格式存储日期的文本列,以删除日期格式的主要内容,如果未能解决你的问题,请参考以下文章

在 sqlalchemy 中以 dd.mm.YYYY 格式转换日期时间格式的数据

PL SQL - 以 dd/mm/yyyy +1 格式添加日期

我的格式日期功能在 Microsoft Access 中不起作用

使用 JQuery Validate [重复] 以 dd/mm/yyyy 格式验证日期

在 SQL 表中设置日期格式 dd/mm/yyyy

Javascript 日期正则表达式 DD/MM/YYYY