日期型数据可以相加减吗?

buzaiyouyu 2002-10-15 07:10:48
请教各位:日期型数据可以相加减吗?
...全文
600 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lightwindwind 2002-10-15
  • 打赏
  • 举报
回复
用函数RelativeDate ( date, n )
n可以取正负值不就相当于date加减了
ice2water 2002-10-15
  • 打赏
  • 举报
回复
在sybase中,使用函数DATEADD()和DATEDIFF(),你可以比较日期的早晚
函数DADEDIFF()的参数是三个变量。第个变量指定日期的某一部分。在这个例子中,是按小时对日期进行比较,(要了解日期各部分的详细内容,请参考表11.2)在日期2000年11月1日和2000年11月30日的指定时间之间有689个小时。另外两个参数是要进行比较的时间。为了返回一个正数,较早的时间应该先给。
函数DATEADD()把两个日期相加。当你需要计算截止日期这一类的数据时,这个函数是有用处的。例如,假设访问者必须先注册才能使用你的站点。注册以后,他们可以免费使用你的站点一个月。要确定什么时候他们的免费时间会用完,你可以使用如下的SELECT
语句:
SELECT username ‘ser Name’,
DATEADD(mm,1,firstvisit_date) ‘Registration Expires’
FROM registration_table
函数DATEADD()的参数有三个变量。第一个变量代表日期的某一部分(参见表11.2),这个例子用到了代表月份的mm。第二个变量指定了时间的间隔――在本例中是一个月。最后一个变量是一个日期,在这个例子中,日期是取自DATETIME型字段firstvisit_dat e. 假设当前日期是June 30,2000,这个语句将返回如下的内容:
User Name Registration Expires
…………………………………………………………………………
Bill Gates Jul 30 2000 4:09PM
President Clinton Jul 30 2000 4:13PM
William Shakespeare Jul 1 2000 4:09PM
(3 row(s) affected)

注意:
与你预料的相反,使用函数DATEADD()把一个日期加上一个月,它并不加上30天。这个函数只简单地把月份值加1。这意味着在11月注册的人将比在2月注册的人多得到2天或3天的时间。要避免这个问题,你可以用函数DATEADD()直接增加天数,而不是月份。

在PB中除楼上说的外,还有:
RelativeDate()
功能得到指定日期前多少天或后多少天的日期。
语法RelativeDate(date,n)
参数date:Date类型,指定基准日期n:integer类型,指定天数返回值Date。当n的值大于0时返回参数date指定日期后第n天的日期;当n的值小于0时返回参数date指定日期前第n天的日期。如果任何参数的值为NULL,则RelativeDate()函数返回NULL。
-------------------------------------------------------
RelativeTime()
功能得到指定时间前多少秒或后多少秒的时间,采用24小时制。
语法RelativeTime ( time, n )参数time:time类型,指定基准时间n:long类型,指定秒数返回值Time。当n的值大于0时返回参数time指定时间后第n秒的时间;当n的值小于0时返回参数time指定时间前第n秒的时间。如果任何参数的值为NULL,则RelativeTime()函数返回NULL。

总之,找一些相关的函数看看。
bomber2001 2002-10-15
  • 打赏
  • 举报
回复
daysafter(date1,date2)
当然也可以自己去写一个计算函数!
= = = = = = = = = = = = = = = = = = = = = = = = = = = =
    &\\|//&
   \\ - - //
   ( @&@ )
┏━oOOo-(_)-oOOo━━━━━━━━━┓
┃我本天煞孤星           ┃
┃ 注定一生孤独       ┃
┃  oooO             ┃
┗━(  )-━Oooo ━━━━━━━━━┛
   \ (  (  )
   \_)  ) /
      (_/
jjweid 2002-10-15
  • 打赏
  • 举报
回复
DaysAfter()
功能得到两个日期间的天数。
语法DaysAfter ( date1, date2 )
参数date1:date类型,指定起始日期
date2:date类型,指定终止日期
返回值Long。函数执行成功时得到两个日期之间的天数。
如果date2的日期在date1的前面,那么DaysAfter()函数返回负值。如果任何参数的值为NULL,则DaysAfter()函数返回NULL。
示例1. 下面的语句返回4:
DaysAfter(1996-12-20, 1996-12-24)
示例2. 下面的语句返回-4:

1,075

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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