用delete from 怎么删除两个日期之间的数据?

jojojk 2008-08-02 01:12:07
想使用delete from 删除从起始日期到终止日期之间的数据!
DELETE FROM T_NPSFTZD
WHERE string(NPND,'yyyy-MM') >= string(:datestart,'yyyy-MM')
AND string(NPND,'yyyy-MM') <= string(:dateend,'yyyy-MM');
上面的语句不起作用?这个语句该怎么写呢?
...全文
351 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzc0527 2008-08-03
  • 打赏
  • 举报
回复
dw_1.setfilter("lrrq>=2006-10-15 and lrrq<=2006-10-15")
dw_1.filter()
sdsxlj 2008-08-02
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 jojojk 的回复:]
把日期在sQL里转换成字符串
[/Quote]
select convert(char(10),NPND,120) from T_NPSFTZD
查询的结果就是把npnd转换成形如:2008-08-02的形式
jojojk 2008-08-02
  • 打赏
  • 举报
回复
谢谢sdsxlj
模糊查询里对日期的匹配有什么好的方法吗?
我正在做一个通用查询的模块,从dw中取字段名和类型,然后根据不同的类型和运算符去查找,其中最难的就是把日期在sQL里转换成字符串,like 只能匹配字符串啊。
jojojk 2008-08-02
  • 打赏
  • 举报
回复
昨晚好像没加这句,可能没提交!
commit;
不过我想把日期当字符串匹配该怎么查呢?用pos(),可是日期在SQL里怎么转换成字符串啊?
sdsxlj 2008-08-02
  • 打赏
  • 举报
回复

DELETE FROM T_NPSFTZD
WHERE convert(char,NPND,120) between convert(char,:datestart,120) AND convert(char,:dateend,120);

--or
DELETE FROM T_NPSFTZD
WHERE datediff(nm,:datestart,npnd)>=0 and datediff(nm,npnd,:dateend)<=0;
jojojk 2008-08-02
  • 打赏
  • 举报
回复
dalisong 同志
我只查年月啊?
jojojk 2008-08-02
  • 打赏
  • 举报
回复
DELETE FROM T_NPSFTZD
WHERE NPND between :datestart and :dateend;
commit;
-----------------------------------------
这个我试过好像不起作用,我是sql server 2000数据库
jojojk 2008-08-02
  • 打赏
  • 举报
回复
谢谢
筛选器filter里面怎么用日期段间的查询?
dalisong 2008-08-02
  • 打赏
  • 举报
回复
楼主这是写PB里的SQL语句,格式没问题,只是太想当然了,
日期应该是完整的YYYY-MM-DD格式,而不是YYYY-MM。
sinlan 2008-08-02
  • 打赏
  • 举报
回复
不能用string
用convert or cast
ybkenan 2008-08-02
  • 打赏
  • 举报
回复
DELETE FROM T_NPSFTZD
WHERE convert(char(6),NPND,112) between convert(char(6),:datestart,112) AND convert(char(6),:dateend,112);
Commit;

楼主试这个一定能删除。 ^_^

SKY_4K_PPM 2008-08-02
  • 打赏
  • 举报
回复
DELETE FROM T_NPSFTZD
WHERE NPND BETWEEN :DATE1 AND DATE2;
SQL 好像不支持STRING(),而且用了STRING()改变了DATE类型的话,就不好判断俩个时间之间的值了。
jlwei888 2008-08-02
  • 打赏
  • 举报
回复
也可以转换下,convert(char,NPND,111) 格式是 yyyy/mm/dd
DELETE FROM T_NPSFTZD
WHERE convert(char,NPND,111) between :datestart and :dateend;
annymu 2008-08-02
  • 打赏
  • 举报
回复
DELETE FROM T_NPSFTZD
WHERE NPND between :datestart and :dateend;
commit;
编程夜猫 2008-08-02
  • 打赏
  • 举报
回复
DELETE FROM T_NPSFTZD WHERE datediff(nm,:datestart,npnd)>=0 and datediff(nm,npnd,:dateend)<=0;

1,075

社区成员

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

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