sybase日期函数
程序员文章站
2023-12-29 09:40:34
...
1 获取当前日期时间 getdate()
select getdate() --2013-1-30 11:34:58.133
2 取指定时间的某一部分 datepart(日期部分,日期)
--取时间的某一个部分
select datepart(yy,getdate()) --year 2013
select datepart(mm,getdate()) --month 1
select datepart(dd,getdate()) --day 30
select datepart(hh,getdate()) --hour 11
select datepart(mi,getdate()) --min 35
select datepart(ss,getdate()) --sec 58
--取星期几
set datefirst 1
select datepart(weekday,getdate()) --weekday 4
3 日期2-日期1,单位为日期部分指定 datediff(日期部分,日期1,日期2)
SELECT datediff(yy,'2012/12/01',getdate()) --1
SELECT datediff(mm,'2012/12/01',getdate()) --1
SELECT datediff(dd,'2012/12/01',getdate()) --60
SELECT datediff(hh,'2012/12/01',getdate()) --1451
SELECT datediff(mi,'2012/12/01',getdate()) --87097
SELECT datediff(ss,'2012/12/01',getdate())
4 计算指定时间,再加上表达式指定的时间长度 dateadd(日期部分,数值,日期)
SELECT dateadd(yy,1,getdate())
SELECT dateadd(mm,1,getdate())
SELECT dateadd(dd,1,getdate())
SELECT dateadd(hh,1,getdate())
SELECT dateadd(mi,1,getdate())
SELECT dateadd(ss,1,getdate())
5 字符串时间
select getdate() -- '2012/12/4 10:48:07.540'
select convert(char,getdate(),101) -- '12/04/2012'
select convert(char,getdate(),102) -- '2012.12.04'
select convert(char,getdate(),103) -- '04/12/2012'
select convert(char,getdate(),104) -- '04.12.2012'
select convert(char,getdate(),105) -- '04-12-2012
select convert(char,getdate(),106) -- '04 Dec 2012'
select convert(char,getdate(),107) --'Dec 04, 2012'
select convert(char,getdate(),108) --'11:16:06'
select convert(char,getdate(),109) --'Dec 4 2012 10:50:28:146AM'
select convert(char,getdate(),110) --'12-04-2012'
select convert(char,getdate(),111) --'2012/12/04'
select convert(char,getdate(),112) --'20121204'
6 以时间为维度的趋势查询
--查询一个月内的每一天
select convert(varchar(10),
dateadd(dd,
number + 1,
convert(char(10), dateadd(mm, -1, getdate()), 111)),
111) dt
from master .. spt_values
where type = 'p'
and number < 31
--查询一年内的每一月
select convert(varchar(7),
dateadd(mm,
number + 1,
convert(char(10), dateadd(yy, -1, getdate()), 111)),
111) dt
from master .. spt_values
where type = 'p'
and number < 12
7 空处理函数
isnull(val1,val2) val1为空,值为val2
select getdate() --2013-1-30 11:34:58.133
2 取指定时间的某一部分 datepart(日期部分,日期)
--取时间的某一个部分
select datepart(yy,getdate()) --year 2013
select datepart(mm,getdate()) --month 1
select datepart(dd,getdate()) --day 30
select datepart(hh,getdate()) --hour 11
select datepart(mi,getdate()) --min 35
select datepart(ss,getdate()) --sec 58
--取星期几
set datefirst 1
select datepart(weekday,getdate()) --weekday 4
3 日期2-日期1,单位为日期部分指定 datediff(日期部分,日期1,日期2)
SELECT datediff(yy,'2012/12/01',getdate()) --1
SELECT datediff(mm,'2012/12/01',getdate()) --1
SELECT datediff(dd,'2012/12/01',getdate()) --60
SELECT datediff(hh,'2012/12/01',getdate()) --1451
SELECT datediff(mi,'2012/12/01',getdate()) --87097
SELECT datediff(ss,'2012/12/01',getdate())
4 计算指定时间,再加上表达式指定的时间长度 dateadd(日期部分,数值,日期)
SELECT dateadd(yy,1,getdate())
SELECT dateadd(mm,1,getdate())
SELECT dateadd(dd,1,getdate())
SELECT dateadd(hh,1,getdate())
SELECT dateadd(mi,1,getdate())
SELECT dateadd(ss,1,getdate())
5 字符串时间
select getdate() -- '2012/12/4 10:48:07.540'
select convert(char,getdate(),101) -- '12/04/2012'
select convert(char,getdate(),102) -- '2012.12.04'
select convert(char,getdate(),103) -- '04/12/2012'
select convert(char,getdate(),104) -- '04.12.2012'
select convert(char,getdate(),105) -- '04-12-2012
select convert(char,getdate(),106) -- '04 Dec 2012'
select convert(char,getdate(),107) --'Dec 04, 2012'
select convert(char,getdate(),108) --'11:16:06'
select convert(char,getdate(),109) --'Dec 4 2012 10:50:28:146AM'
select convert(char,getdate(),110) --'12-04-2012'
select convert(char,getdate(),111) --'2012/12/04'
select convert(char,getdate(),112) --'20121204'
6 以时间为维度的趋势查询
--查询一个月内的每一天
select convert(varchar(10),
dateadd(dd,
number + 1,
convert(char(10), dateadd(mm, -1, getdate()), 111)),
111) dt
from master .. spt_values
where type = 'p'
and number < 31
--查询一年内的每一月
select convert(varchar(7),
dateadd(mm,
number + 1,
convert(char(10), dateadd(yy, -1, getdate()), 111)),
111) dt
from master .. spt_values
where type = 'p'
and number < 12
7 空处理函数
isnull(val1,val2) val1为空,值为val2