请各位大哥大姐帮忙,高分感谢 如何在shell中获取当前日期的前几天的日期?

xiaohen 2006-01-13 11:31:43
我想利用crontab,每天自动执行一个shell,让它能根据时间删除我的库中的数据,但是我必须在库中保存几天的,比如是6天的数据,因此需要用到当前日期的前6天的时间,格式如下
比如我用wk=`date +20%y%m%d`获取了今天的日期是20051220,那么我想获取20051214,请问如何用函数实现,谢谢了!
...全文
526 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
fierygnu 2006-01-13
  • 打赏
  • 举报
回复
date -d "6 days ago" +20%y%m%d
fierygnu 2006-01-13
  • 打赏
  • 举报
回复
TZ的方法可移植性不好。
cwwhy 2006-01-13
  • 打赏
  • 举报
回复
http://bbs.chinaunix.net/viewthread.php?tid=15824&extra=&highlight=date&page=1
cwwhy 2006-01-13
  • 打赏
  • 举报
回复
echo `TZ=$TZ+16 date +20'%y%m%d'`

或者
echo `TZ=GMT+29 date +20'%y%m%d'`

你试试吧,看看多加点是改变6天。
xiaohen 2006-01-13
  • 打赏
  • 举报
回复
哦~忘了说明环境了,用的是sco unix的系统,informix的库,date -d "-6 day" +20%y%m%d
可是执行不了啊?
cwwhy 2006-01-13
  • 打赏
  • 举报
回复
另外也可以用数据库时间来判断
oracle可以这样:
select * from tablename where datecol>sysdate -6

sysdate -6 表示6天前
fierygnu 2006-01-13
  • 打赏
  • 举报
回复
楼主,这不是直接减。
如cwwhy() 所说,确认你的系统。如果实在不行,用awk吧。
cwwhy 2006-01-13
  • 打赏
  • 举报
回复
你什么系统?
Linux系统肯定可以的。其他的系统不行。
痞子酷 2006-01-13
  • 打赏
  • 举报
回复
或者你自己动手写个小程序吧。

呵呵~~~接分
痞子酷 2006-01-13
  • 打赏
  • 举报
回复
通过数据库来得到呀。

呵呵~~~接分
xiaohen 2006-01-13
  • 打赏
  • 举报
回复
date -d "6 days ago" 这样是不行的啊,如果是20051201,这样直接减,不对的,因为这个不只是数字,不能简单的加减啊
cwwhy 2006-01-13
  • 打赏
  • 举报
回复
date -d "-6 day" +20%y%m%d

23,223

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧