【发布时间】:2018-08-28 06:03:15
【问题描述】:
我正在尝试检索两个特定日期之间的记录。我从中检索记录的表中的日期以“dd/mm/yyyy”格式表示,我使用的条件表示相同。
我注意到我的代码没有按预期工作,我发现这是因为它以美国格式而不是欧盟格式读取日期。例如:
SELECT CodOpe, PV_Sensy, Cashflow_Date FROM Amort_Plans_Calc
WHERE Cashflow_Date > #01/04/2018# AND Cashflow_Date <= #01/10/2021#
AND CodOpe = "06340CMLIM00506007228378601";
返回错误的记录数。如果我使用此代码,它会返回正确的数字:
SELECT CodOpe, PV_Sensy, Cashflow_Date FROM Amort_Plans_Calc
WHERE Cashflow_Date > #04/01/2018# AND Cashflow_Date <= #10/01/2021#
AND CodOpe = "06340CMLIM00506007228378601";
我已经以正确的格式设置了所有字段。我试过在查询条件中使用 Format 函数:
SELECT CodOpe, PV_Sensy, Cashflow_Date FROM Amort_Plans_Calc
WHERE Cashflow_Date > Format("01/04/2018", "dd/mm/yyyy")
AND Cashflow_Date <= Format("10/01/2021", "dd/mm/yyyy")
AND CodOpe = "06340CMLIM00506007228378601";
这个方法也没有用(它根本没有显示任何结果)。
另外考虑一下,我只是把它说得更简单,因为我的真实脚本需要条件中的 Dateadd 函数(因此我需要让 Access 正确读取日期)并且应该是这样的:
SELECT CodOpe, PV_Sensy, Cashflow_Date FROM Amort_Plans_Calc
WHERE Cashflow_Date > Dateadd("m", 18, Format("01/04/2018", "dd/mm/yyyy"))
AND Cashflow_Date <= Dateadd("y", 5, Format("10/01/2021", "dd/mm/yyyy"))
AND CodOpe = "06340CMLIM00506007228378601";
这个版本没有显示任何结果,但似乎我不能将主题标签放在 dateadd 函数之外。
我该如何解决这个问题?
提前致谢,
乔纳
【问题讨论】:
-
the records are expressed in the "dd/mm/yyyy" format这是否意味着日期在文本列中? -
将格式功能(使用美国日期格式)应用于您的列而不是您的条件。
标签: sql date ms-access format conditional-statements