sybase函数用法之DateAdd

 

弄几个例子:

测试环境:sybase12.5

DateAdd函数 返回一个时间。

语法

DateAdd(interval, number, date)

DateAdd 函数语法中有下列命名参数:

部分 描述

interval 必要。字符串表达式,是所要加上去的时间单位。

number 必要。int类型,是要加上的时间的数量。其数值可以为正数(得到未来的时间),也可以为负数(得到过去的时间)。

date 必要。表示时间的文字。

设置

interval 参数具有以下设定值:

year 年

1> select convert(varchar(10),getdate(),111)+' '
2> +convert(varchar(8),getdate(),108) old,
3> convert(varchar(10),dateadd(year,1,getdate()),111)+' '
4> +convert(varchar(8),dateadd(year,1,getdate()),108) new
5> go
old                 new
------------------- -------------------
2008/03/10 11:42:30 2009/03/10 11:42:30

(1 row affected)

quarter 季    

1> select convert(varchar(10),getdate(),111)+' '
2> +convert(varchar(8),getdate(),108) old,
3> convert(varchar(10),dateadd(quarter,1,getdate()),111)+' '
4> +convert(varchar(8),dateadd(quarter,1,getdate()),108) new
5> go
old                 new
------------------- -------------------
2008/03/10 11:44:00 2008/06/10 11:44:00

(1 row affected)

month 月

1> select convert(varchar(10),getdate(),111)+' '
2> +convert(varchar(8),getdate(),108) old,
3> convert(varchar(10),dateadd(month,1,getdate()),111)+' '
4> +convert(varchar(8),dateadd(month,1,getdate()),108) new
5> go
old                 new
------------------- -------------------
2008/03/10 13:27:02 2008/04/10 13:27:02

(1 row affected)

day 日


1> select convert(varchar(10),getdate(),111)+' '
2> +convert(varchar(8),getdate(),108) old,
3> convert(varchar(10),dateadd(day,1,getdate()),111)+' '
4> +convert(varchar(8),dateadd(day,1,getdate()),108) new
5> go
old                 new
------------------- -------------------
2008/03/10 13:28:54 2008/03/11 13:28:54

(1 row affected)

week 周


1> select convert(varchar(10),getdate(),111)+' '
2> +convert(varchar(8),getdate(),108) old,
3> convert(varchar(10),dateadd(week,1,getdate()),111)+' '
4> +convert(varchar(8),dateadd(week,1,getdate()),108) new
5> go
old                 new
------------------- -------------------
2008/03/10 13:30:10 2008/03/17 13:30:10

(1 row affected)

hour 时


1> select convert(varchar(10),getdate(),111)+' '
2> +convert(varchar(8),getdate(),108) old,
3> convert(varchar(10),dateadd(hour,1,getdate()),111)+' '
4> +convert(varchar(8),dateadd(hour,1,getdate()),108) new
5> go
old                 new
------------------- -------------------
2008/03/10 13:31:35 2008/03/10 14:31:35

(1 row affected)

minute 分钟


1> select convert(varchar(10),getdate(),111)+' '
2> +convert(varchar(8),getdate(),108) old,
3> convert(varchar(10),dateadd(minute,1,getdate()),111)+' '
4> +convert(varchar(8),dateadd(minute,1,getdate()),108) new
5> go
old                 new
------------------- -------------------
2008/03/10 13:32:51 2008/03/10 13:33:51

(1 row affected)

second 秒


1> select convert(varchar(10),getdate(),111)+' '
2> +convert(varchar(8),getdate(),108) old,
3> convert(varchar(10),dateadd(second,1,getdate()),111)+' '
4> +convert(varchar(8),dateadd(second,1,getdate()),108) new
5> go
old                 new
------------------- -------------------
2008/03/10 13:34:02 2008/03/10 13:34:03

(1 row affected)
说明

可以使用 DateAdd 函数对日期加上或减去指定的时间。例如,可以用 DateAdd 来计算距今天为三十天的日期;或者计算距现在为 45 分钟的时间。

DateAdd 函数遇到闰月。在以下实例中将 1 月31 日加上一个月:

dateadd(month, 1, '31-Jan-95')

1> select dateadd(month, 1, '31-Jan-95')
2> go

--------------------------
        Feb 28 1995 12:00AM

(1 row affected)
上例中,DateAdd 返回 1995 年 2 月 28 日,而不是 1995 年 2 月 31 日。

如果 date 是 1996 年 1 月 31 日,则由于 1996 年是闰年,返回值是 1996 年 2 月 29 日。

1> select dateadd(month, 1, '31-Jan-96')
2> go

--------------------------
        Feb 29 1996 12:00AM

(1 row affected)

如果计算的日期超前 255 年(减去的年度超过 date 中的年份),就会导致错误发生。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值