Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

定期册除问题?

jia  发表于:2010-09-16 09:06:56  
复制

老师们好:

求教问题:如何才能做到超过今日三个月后,从表中删除三个月以前的内容?

点击下载此附件

 

Top
煮江品茶 发表于:2010-09-16 10:02:25

好像不对吧?你的动作发生在将来?如果发生在将来的话,今天只做标记,并不对以前三个月内的数据进行删除吗?那么以后的每个今天都只做标记而不删除吗?这个逻辑不通。

换一个逻辑,对今天以前的三个月数据做删除,不对今后的删除做标记。也不通,因为要对今后做点什么才对。

明白了。你冗余了一句话!跟今后无关,只是删除以前三个月内的数据,不是近三个月的数据。

 



煮江品茶 发表于:2010-09-16 10:07:56
DELETE *
FROM 表1
WHERE 日期<DateAdd("m",-3,Date());


jia 发表于:2010-09-16 10:38:49

老煮江品茶师您好:

我的意思是:以当前日期算起对三个月前的数据进行删除(要保留三个月的数据)。



yinyt 发表于:2010-09-16 13:52:43
DELETE *
FROM 表1
WHERE 日期<Date()-90;


煮江品茶 发表于:2010-09-16 13:56:25

DateAdd("m",-3,Date())就是三个月前的今日,日期<DateAdd("m",-3,Date())就是你要删除的数据。所以应该为:

DELETE *
FROM 表1
WHERE 日期<DateAdd("m",-3,Date());



jia 发表于:2010-09-16 15:01:18

煮江品茶师您好:

按您的方法做,只能保留最后一个月的记录,不知何原因?

点击下载此附件

煮江品茶 发表于:2010-09-16 15:53:25

那就对了。从今天往前推三个月,应该为6月16日。在以下表中,只有2010/6/25日的数据是在近三月内的,其余数据都是三个月前的。

表1 的副本
日期
2010/6/25
2010/1/25
2010/3/25
2010/2/25
2010/4/25
2010/5/25



jia 发表于:2010-09-16 15:59:35
谢谢煮江品茶老师您的指教。

总记录:8篇  页次:1/1 9 1 :