如何得到数据窗口date类型字段的前面几位数

xm137 2005-06-21 05:09:56
如何得到数据窗口date类型字段的前面几位数,
例如:2005-06-21的2005或者2005-06
...全文
149 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
PCG 2005-08-31
  • 打赏
  • 举报
回复
在窗口上加两个控件:em_day1,em_day2
mask属性是"yy-mm-dd"
ls_day1 = trim(em_day1.text)
ls_day2 = trim(em_day2.text)
if len(ls_day1) < 1 or (not isdate('20' + ls_day1)) then setnull(ls_day1)
if len(ls_day2) < 1 or (not isdate('20' + ls_day2)) then setnull(ls_day2)

if isnull(ls_day1) or len(ls_day1)=0 then
else
ls_day1 ='20' + em_day1.text + ' 00:00:00'
end if

if isnull(ls_day2) or len(ls_day2)=0 then
else
ls_day1 ='20' + em_day2.text + ' 00:00:00'
end if

然后把ls_day1和ls_day2做为参数传进去,数据窗口里的sql要写
to_date(:day1,'yyyy-mm-dd hh24:mi:ss')
xm137 2005-06-22
  • 打赏
  • 举报
回复
用year()函数不行啊!
mf10000 2005-06-22
  • 打赏
  • 举报
回复
用year()函数
xm137 2005-06-22
  • 打赏
  • 举报
回复
sql中怎么得到DATE类型的年份?
xm137 2005-06-22
  • 打赏
  • 举报
回复
郁闷!
雨中飞侠 2005-06-22
  • 打赏
  • 举报
回复
没有看懂,你是在哪里写语句的?
在sql中的话 ,select 字段 from 表 where substr(date,1,4) = :ls_date

假如,你是在查询按钮中的话,你要用filter来过滤

dw_1.setfilter("ziduan like'"+ sle_1.text+"'%')
dw_1.filter()
xm137 2005-06-22
  • 打赏
  • 举报
回复
???
qianfl 2005-06-22
  • 打赏
  • 举报
回复
看你是用SETFILTER查还是直接写SQL查了,两者的写法不一样
xm137 2005-06-22
  • 打赏
  • 举报
回复
还是不行啊!哪位大虾帮帮忙!
mf10000 2005-06-22
  • 打赏
  • 举报
回复
呵呵,晕了,我想了个法可以满足你的要求:下边代码里的 babybirthday 表示你的数据库里日期字段名
string filter
string year,year1,year2

year=trim(sle_1.text) //单行编辑条,写要检索数据的年份
year1=string(long(year) - 1)
year2=string(long(year)+1)

filter="babybirthday >=datetime('"+year1+"-1-1') and babybirthday<=datetime('"+year2+"-1-1')"

dw_1.retrieve()
dw_1.setfilter(filter)
dw_1.filter()

我试过的可以
xm137 2005-06-21
  • 打赏
  • 举报
回复
能不能详细一点
flyerlxg 2005-06-21
  • 打赏
  • 举报
回复
原来如此,那可动态修改数据窗口的SQL,修改后要记得重置事务。
string ls_tmp

ls_tmp = trim(sle_1.text)
然后再在原数据窗口的SQL后面加上

left(cast(varchar(4),时间列),4) = :ls_tmp

注意逻辑关系,如果原数据窗口没有where,则这里也应该带上。
j9dai 2005-06-21
  • 打赏
  • 举报
回复
不同的数据库不同的语法
flyerlxg 2005-06-21
  • 打赏
  • 举报
回复
string ls_tmp

ls_tmp = string(dw_1.GetItemDate(行,列),'yyyy')
或者
ls_tem = string(dw_1.GetItemDate(行,列),'yyyy-mm')
xm137 2005-06-21
  • 打赏
  • 举报
回复
我是要在窗口中建立查询,例如:输入文本2005查数据窗口中的2005年的数据
老高高高 2005-06-21
  • 打赏
  • 举报
回复
在控件的属性里设置为yyyy或yyyy-mm

740

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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