sql - SQL - 我有两个日期字符串,即返回 len(9)、m/dd/yyyy 和 mm/d/yyyy。什么有助于选择格式?
问题描述
这有点难以填补背景故事。我使用的软件只能识别 mm/yyyy 或 m/yyyy 格式的固定日期,但它可以从 MS Access 的表格中读取链接日期。在程序中,您可以选择将 Access 链接日期转换为存储在软件中的固定日期。当它转换为固定值时,它可以以多种变化形式写入日期,但给我带来麻烦的是,当它以“m/dd/yyyy”或“mm/d/yyyy”这两种格式中的任何一种格式写入时这些返回的长度为 9。下面的代码是我如何处理长度为 6、7、8 或 10 的其他格式。我只注意到 len 9 的错误,因为我终于遇到了将日期写为“m”的情况/dd/yyyy”,它导致软件错误,因为我的查询将日期“更正”为“m//yyyy” 格式。我无法控制它如何写日期。软件公司知道这个问题,并在下一次更新中解决它,但我不知道什么时候会推出,所以在那之前我需要一个解决方法。
使用下面的方法将返回“m//yyyy”或“mm/yyyy”。如何让它选择处理“m/dd/yyyy”格式以输出“m/yyyy”而不是两个反斜杠?这不是我的代码,这里有人在回答之前的问题时写了它。我对任何编程语言都不是很胜任,但我对函数有基本的了解。
IIf(Len([Expression])=6,"0" & [Expression],
IIf(Len([Expression])=7,[Expression],
IIf(Len([expression])=8,Left([Expression],1) & "/" & Right([expression],4),
IIf(Len([expression])=9,Left([Expression],2) & "/" & Right([expression],4),
IIf(Len([expression])=10,Left([Expression],2) & "/" & Right([expression],4))))))
我的猜测是包含一个嵌套的 AND 函数或类似的东西,但我不知道如何让它正常工作,然后我必须做一些像 IfElse 语句来处理“mm/d/yyyy”格式. 我确信有一种更有效的方法可以找到解决方案,我会感谢那些真正知道他们在做什么的人的帮助,而不是让我在下个月摸索它并将我的头撞到我的桌子上。
If Len[Expression]=9 AND Left[Expression],2 = "/", Left([Expression],1) & "/" & Right([Expression],4) Else Left([Expression],2) & "/" & Right([Expression],4)
解决方案
尝试为 9 个字符长的项目添加替换功能:
IIf(Len([expression])=9,Replace(Left([Expression],2) & "/" & Right([expression],4), "//","/"),
推荐阅读
- java - 在 Maven 版本中忽略 ${project.version}:准备
- json - 将变量插入 JSON 有效负载
- asp.net-core - 无法从 OnPost() 中的 OnGet() 访问我的列表
- javascript - 如何从javascript中的对象中获取匹配的键值
- swift - 如何在我的 macos Swift 框架中 *** 包含 *** 源代码
- python - telegraf 和 Influxdb 的 Json 数据格式
- c# - C# WPF:如何检查打印机选项:“Microsoft Print to PDF”是否存在
- html - 为什么我的图片没有放在我的文字旁边?
- movesense - 无法设置系统时间
- android - 如何在自动完成中为会话正确分配令牌