• 主页
  • API 调用
  • 基础类
  • 控件与界面
  • 数据库相关
  • DataWindow
  • 项目管理
  • Web 应用
  • 脚本语言

求教:如何把今年的日期转换成去年今日的日期?

ldyao 2004-06-20 07:01:16
我想写一个函数,能把今年的日期转换成去年今日的日期。

如能把2004-06-20转换成2003-06-20
如果是2004-02-29则变成2003-02-28

特此请教各位!
...全文
91 点赞 收藏 9
写回复
9 条回复
flyerlxg 2004年06月22日
关键是看在哪里去做这件事,如果是让数据库后台做,则要看采用的是什么数据库,如果是在前台做,那直接用函数去做比较好一点,愚人之见,仅供参考!
回复 点赞
changtian2003 2004年06月22日

这个方法实用!
回复 点赞
紫炎圣骑 2004年06月21日
支持TGWall(我到长城(岁岁花似人不同,过好今天)) !

回复 点赞
ldyao 2004年06月21日
好的,谢谢楼上的指点!
回复 点赞
feixianzhi 2004年06月21日
楼主的代码不具通用性,不要直接用算术表达式得到,你应该通过判断是否闰年来获得二月的最后一天。
假如仅仅是为了获得2003年的二月,那就不必判断了!
回复 点赞
sfb 2004年06月21日
oracle数据库可以这样
select to_date('2004-02-29','yyyy-mm-dd'),
add_months(to_date('2004-02-29','yyyy-mm-dd'),-12)
from dual;

select sysdate,add_months(sysdate ,-12) from dual;

回复 点赞
ouyangibing 2004年06月21日
用函数RelativeDate()很容易搞定,如:RelativeDate(1990-01-31, - 10)返回:1990-01-21,要得到下年的今天,判断一下大小年再加该年的天数就行
回复 点赞
TGWall 2004年06月20日
祝贺楼主自力更生 :)
回复 点赞
ldyao 2004年06月20日
呵呵,我自己搞定了。

datetime ld_dt
int li_year,li_month,li_day

li_year=year(date(r_dt))-1
li_month=month(date(r_dt))
li_day=day(date(r_dt))

if li_day =29 and li_month =2 then
li_day =28
end if

ld_dt=datetime(date(li_year,li_month,li_day))

return ld_dt
回复 点赞
发动态
发帖子
PowerBuilder
创建于2007-09-28

591

社区成员

6.6w+

社区内容

PowerBuilder 相关问题讨论
社区公告
暂无公告