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

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

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

特此请教各位!
...全文
720 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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

1,108

社区成员

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

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