ms-access - 如何将像 mmm-yy 这样的文本日期格式转换为 MS Access 查询中的日期?

标签 ms-access date

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

May-31

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

如果我在查询中使用以下内容:
CDate([BIRTHDT])

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

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

最佳答案

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

这是立即窗口中的 session 。

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;

关于ms-access - 如何将像 mmm-yy 这样的文本日期格式转换为 MS Access 查询中的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12046587/

相关文章:

ms-access - Access 数据库已被其他用户以独占方式打开

python - python循环起始月份和起始年份到结束月份和年份

javascript - 如何在 JavaScript 中将 ISO 8601 日期转换为 '/Date(1525687010053)/' 格式?

r - 将日期转换为年月表示

java - 使用udl文件连接到java中的access数据库

sql - 使用 MS Access 中另一个字段的值填充一个字段

sql - 如何比较 2 个字段并返回每条记录的最小值?

python - 查找两个日期列之间的所有月份并为每个月生成行

java - 如何使用 ReflectionToStringBuilder 并将日期格式化为可读字符串?

vba - Access VBA错误 "operation not supported for this type of object"