按访问日期删除
Posted
技术标签:
【中文标题】按访问日期删除【英文标题】:Delete by Date In Access 【发布时间】:2015-06-16 20:42:38 【问题描述】:我有一个包含日期的字段,我需要做的是删除 2 年前的日期,所以如果字段中的日期是 2014 年 6 月 16 日,将删除它,6/ 16/2013 将保留它。有可能吗?
【问题讨论】:
你想怎么做?查询,vba? 但是 2013 年 6 月 16 日已经两年了,你既要删除它又要保留它……不可能。 我想成为一个查询,我需要它来删除日期字段(格式:mm/dd/yyyy)中的日期小于一年的记录。因此,如果日期在 214 年 6 月 16 日,它将删除它以及之后的所有内容,而 2014 年 6 月 15 日及以下将保留它。 【参考方案1】:这样的 SQL 查询应该可以解决问题,删除 2013 年 6 月 17 日或之后的任何内容(我认为这就是您要查找的内容)。
DELETE FROM MyTableName WHERE MyDateField >= #6/17/2013#
我发现使用 >= #6/17/2013#
而不是 > #6/16/2013#
更安全,因为通常指定没有时间的日期意味着当天在午夜,所以在 6 月 16 日午夜之后发生的任何事情仍然被认为是“之后”并得到已删除。
此外,您可能希望在进行批量删除之前制作 .mdb 文件的副本,以防万一。 :-)
如需进一步阅读,请查看 Office.com: Access SQL: basic concepts, vocabulary, and syntax
编辑:要自动使用今天的日期减去 2 年,查询将变为
DELETE FROM MyTableName WHERE MyDateField > DATEADD("yyyy", -2, DATE())
当然,这也可能会删除 2013 年 6 月 16 日及之后的事件,而不是 2013 年 6 月 17 日及之后的事件。如果这是一个问题,您可以使用嵌套的 DATEADD 语句对其进行调整,一个减去 2 年,一个添加一天。
FMI:Access DATEADD() Function
【讨论】:
如果有办法通过函数告诉 Access 今天的日期是什么,然后从那里开始,而不是手动输入查询?以上是关于按访问日期删除的主要内容,如果未能解决你的问题,请参考以下文章