需要访问SQL查询(日期)

时间:2010-09-07 15:01:49

标签: ms-access

所以我有以下查询:

DoCmd.RunSQL "delete * from [TABLE NAME] where month = '" & Format(PrevMonth, "yyyy-mm-dd") & "'"

month是一个文本字段。

让我们说PrevMonth = August 2010所以不要删除日期是2010年8月的行,而是要删除2010年8月以及之后的所有行?所以2010年9月,2010年10月,等等。

感谢。

2 个答案:

答案 0 :(得分:2)

您可以使用CDate()函数将文本日期转换为日期/时间数据类型。

然后:

DELETE FROM [TABLE NAME]
WHERE CDate([month]) >= #2010/08/01#;

我将字段名括在括号中,因为Month()是一个Access VBA函数...括号让Access知道将month作为字段而不是函数处理。如果是我的数据库,我会重命名该字段。

答案 1 :(得分:1)

首先根据[TABLE Name]创建一个查询,将月份从文本转换为日期
SELECT *,CDate("1 " & [Month]) AS DateDate
FROM Table Name;
现在您可以像往常一样使用日期 DELETE Query1.DateDate
FROM Query1
WHERE (((Query1.DateDate) Between #1/1/2010# And #12/31/2010#));

希望这有帮助

相关问题