ITPub博客

首页 > Linux操作系统 > Linux操作系统 > linux date命令高级用法

linux date命令高级用法

原创 Linux操作系统 作者:oracle-admin 时间:2013-07-04 16:42:54 0 删除 编辑

在做linux服务器的运维的时候,我们经常会写一些脚本,在脚本中经常会碰到定义时间变量,比如当前时间三天前,三天后,每月1号,每月月末,上月第一天,上月最后一天,下月第一天,下月最后一天等等。我在此总结一下,免得日后写脚本又需要到处去找:

三天前:date +%Y%m%d -d "3 days ago"

一天前:date +%Y%m%d -d "1 days ago"

三天后:date +%Y%m%d -d "3 days"

上月最后一天:date --date="$(date +%Y-%m-%d) - $(date +%d )  days " +'%Y-%m-%d'
(或date -d "$(date +%Y-%m-%d) - $(date +%d )  days " +'%Y%m%d')

上月倒数第二天:date --date="$(date +%Y-%m-%d) - $(date +%d )  days  -1 days " +'%Y-%m-%d'

上月倒数第三天:date --date="$(date +%Y-%m-%d) - $(date +%d )  days  -1 days - 1 days" +'%Y-%m-%d'

当年第一天和最后一天:select trunc(sysdate,'YYYY'),add_months(trunc(sysdate,'YYYY'),12)-1 from dual t

更复杂的可参考:

1)http://521cto.blog.51cto.com/950229/935642/

2)http://longzxr.blog.sohu.com/208705910.html

另:在oracle中我们有时做一些报表统计时候,也需要使用时间函数,并且做成变量的形式,不用每次查询的时候都去手动修改时间。

如:

3天前:to_char(sysdate-3,'yyyy-mm-dd')

上月26号:to_char(last_day(add_months(sysdate,-2))+26,'yyyy-mm-dd')

本月25号:to_char(last_day(add_months(sysdate,-1))+25,'yyyy-mm-dd')

上月1号:to_char(add_months(last_day(sysdate)+1,-2),'yyyy-MM-dd')

上月最后一天:to_char(add_months(last_day(sysdate),-1),'yyyy-MM-dd'),或select trunc(last_day(add_months(sysdate,-1))) from dual;

注意:在sql语句中如果日期的格式为yyyy-mm-dd格式的时候,在between date1 and date2 日期的值使用的是to_date时,date2是不被包含在内的;日期的值使用的是to_char时,date2是被包含的!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23502881/viewspace-765513/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 10.2.0.5补丁下载
请登录后发表评论 登录
全部评论

注册时间:2011-03-23

  • 博文量
    22
  • 访问量
    102875