存档

文章标签 ‘date’,文章数:5

本博客中aix系统可以用改变时区的方法获取前后N天的日期

Linux下使用date计算某个月份的天数:

Month=2
Year=2008
nextmonth=`date -d "1 month $Year-$Month-"01""  +%Y-%m-%d`
date -d "-1 day $nextmonth" +%d
#或者将-d "1 month $Year-$Month-"01"" 和 date -d "-1 day $nextmonth" 写在一行命令中
Month=2
Year=2008
date -d "1 month $Year-$Month-"01"" -d "-1 day" +%d

使用cal 计算某个月份的天数:

在aix系统中date命令没有-d这个选项,不接收输入的日期值。
在aix系统中如果想获得当前时间的前几天或后几天的时间,可以用改变当前时区的方法。
export TZ=BEIST-8是系统当前时间。
调整时区可以改变时间。
例如:获取下一周的时间 export TZ=BEIST-176 ,176是由(24*7+8)获得
    获取上一周的时间 export TZ=BEIST+160 ,160是由(24*7-8)获得
调整时区只改变当前窗口的时间,对服务器没有影响,但是建议在用完时间后将时区调整回来(export TZ=BEIST-8)这样对系统没有任何影响。

例:有表

--sybase

create table t_test(

mydate datetime)

go

--oracle

create t_test(mydate date)

方法1:在sybase侧建立视图,然后从导出视图(此方法舍弃了毫秒部分)

create view v_test as

select

convert(varchar(10),pst_exec_stime,111)+' '+convert(varchar(9),pst_exec_stime,8) mydate

from t_test

go

纠结了很久了。最近在研究7z的时候,才知道如何使用cmd下的date和time 例如我要生成一个D盘下的200909文件夹, 代码: MD D:\%date:~0,4%%date:~,2% time和date的用法类似。。。。。就不列举了。给大家一个参考 境变量替换已如下增强:   %PATH:str1=str2%     会扩展   PATH   环境变量,用   "str2"   代替扩展结果中的每个   "str1"。要有效地从扩展结果中删除所有的   "str1","str2"   可以是空的。"str1"   可以以星号打头;在这种情况下,"str1"   会从扩展结果的开始到   str1   剩余部分第一次出现的地方,都一直保持相配。也可以为扩展名指定子字符串。   %PATH:~10,5%     会扩展   PATH   环境变量,然后只使用在扩展结果中从第   11   个(偏移量10)字符开始的五个字符。如果没有指定长度,则采用默认值,即变量数值的余数。如果两个数字(偏移量和长度)都是负数,使用的数字则是环境变量数值长度加上指定的偏移量或长度。   %PATH:~-10%     会提取   PATH   [...]

Oracle中查询月底那天的日期的函数为:last_day()。 在ASE中没有对应的函数,在Oracle移植到Sybase的时候,需要手动编写函数来实现,幸亏ASE15.0.2后开始支持自定义函数。

下面提供3种实现查询本月最后一天的日期的SQL语句:

第一种:

select dateadd(dd,-1,convert(char(8),(datepart(yy,dateadd(mm,1,getdate()))*10000+datepart(mm,dateadd(mm,1,getdate()))*100+01)))
go
 

将本月的下一个月的年份和月份提取出来,以数字的形式相加,然后转化成类似YYYYMMDD的这种日期格式。最后直接取下个月的第一天的前一天即可。在ASE中字符串 '20110101' 和 convert(datetime,'20110101') 是相等的。

 

第二种: