4

我有一个格式为 mmm-yy 的文本文件(所有月份都是 3 个字母的缩写,例如 Jan、Feb、Mar)

May-31

这意味着,“1931 年 5 月”。

如果我在查询中使用以下内容:

CDate([BIRTHDT])

我得到的是 2012 年 5 月 31 日,而不是 1931 年 5 月 1 日。其他行(例如 May-32)的其他行(如 May-32)给出了 1932 年 5 月 1 日的预期结果。显然这与 ms-access文本到日期的转换功能 mmm-dd 有效性检查比可能不太常见的 mmm-yy 格式具有更高的优先级,但在这种情况下它会产生意想不到的结果。

所以我需要以某种方式从前 3 个字符中提取月份,从最后 2 位数字中提取年份,并将它们组合起来。理想情况下,我想在 MS Access SQL 中完成这一切。

4

1 回答 1

4

我需要从前 3 个字符中提取月份,从最后 2 位数字中提取年份,然后将它们组合起来。理想情况下,我希望在 MS Access SQL 中完成这一切。

这是立即窗口中的一个会话。

BIRTHDT = "May-31"
? BIRTHDT
May-31
? Left(BIRTHDT,3) & "-1-" & Right(BIRTHDT,2)
May-1-31
? CDate(Left(BIRTHDT,3) & "-1-" & Right(BIRTHDT,2))
5/1/1931

因此,您可以在查询中使用该表达式。

SELECT CDate(Left(BIRTHDT,3) & "-1-" & Right(BIRTHDT,2))
FROM YourTable;
于 2012-08-21T00:25:10.857 回答