DB2中日期函数的使用方法!!!

liujialili 2008-06-17 01:49:48
DB2数据库,想把一个表info里面10个月前的数据删除。
info中有一个字段是 比较日期(bjdate char 8),
通过比较日期跟当前日期 current date,确定删除的数据。
也就是说删除 sbustr(bjdate,1,6) < current date - 10。

上面的写法好像通不过,具体该怎样写呢??
...全文
746 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluecloudhuimin 2008-09-26
  • 打赏
  • 举报
回复
sbustr(bjdate,1,6) < current date - 10。
不同类型啊
王帆 2008-07-22
  • 打赏
  • 举报
回复
bjdate是YYYYMMDD格式的char(8)?

如果是,可以这么写:substr(bjdate,1,4)||'-'||substr(bjdate,5,6)< substr(char(current date - 10 months),1,7)
zwj0712 2008-06-17
  • 打赏
  • 举报
回复
建一个TO_char函数:

to_char(current date -10 months,'yyyymm')

CREATE FUNCTION TO_CHAR
(TIMESTAMP_IN DATE,
FORMAT_STRING VARCHAR(200)
)
RETURNS VARCHAR(200)
LANGUAGE SQL
DETERMINISTIC
READS SQL DATA
STATIC DISPATCH
CALLED ON NULL INPUT
NO EXTERNAL ACTION
INHERIT SPECIAL REGISTERS
RETURN
with parts(yyyy, mm, dd, ddd, d, fday, ww) as (
values (substr(char(timestamp_in), 1, 4), substr(char(timestamp_in), 6, 2),
substr(char(timestamp_in), 9, 2), char(dayofyear(timestamp_in)), char(
dayofweek(timestamp_in)), '', char(week(timestamp_in)) ))
select rtrim(replace(replace(replace(replace(replace(replace(replace( UCASE(
format_string), '"', ''), 'YYYY', yyyy), 'MM', mm), 'DDD', ddd), 'DD',
dd), 'DAY', fday), 'D', d))
from parts;

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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