判断出时间的先后

lulu037 2001-10-27 12:23:46
数据库中的时间字段为19位(string型,格式为:yyyy-mm-dd hh:mm:ss)我想获取客户填充在单行编辑框中的时间(string型,格式为:yyyy-mm-dd)怎样合数据库中的时间进行比较,判断出时间的先后。
...全文
215 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
eastseaofdragon 2001-10-29
  • 打赏
  • 举报
回复
我帮你UP一下
xuexizhe 2001-10-28
  • 打赏
  • 举报
回复
用 dayafter()就行。
假如
1.数据库中的时间字段为systemdate
19位(string型,格式为:yyyy-mm-dd hh:mm:ss)
2.单行编辑框中sle_1的时间(string型,格式为:yyyy-mm-dd)
脚本:
string a
a=left(systemdate,1,6) //取系统时间的前六位字符。
string b
b=left(trim(sle_1.text),1,6) //为防止有空字符等情况出现,取单行编辑框文本前六位。

//为确保你的字符型能转换成日期型,可加入以下脚本。
//因为如20011201格式不能转换成日期型,需转换成2001-12-01,或2001 12 01等格式才行,
//否则转换会失败。
//如是20011201格式,可用:
//left(a,4)+"-"+mid(a,5,6)+"-"+right(a,2)转换字符格式以后再转换成日期格式。

//转换为日期型
date aa,bb
aa=date(a)
bb=date(b)
if DayAfter(aa,bb)>0 then
messagebox("警告","aa在前")
else
messagebox("警告","bb在前")
end if

够详细了吧?

idna 2001-10-27
  • 打赏
  • 举报
回复
PB中日期型好像不能直接相减,有一个函数叫AFTERDATE()查一下,很简单的。
entertcl 2001-10-27
  • 打赏
  • 举报
回复
string(Year(Date()) - Year(Date()))
这样就可以了
jackygan 2001-10-27
  • 打赏
  • 举报
回复
integer i
date basedata,sledata
basedata=date(“你数据库中的段名”)
sledata=date(sle_1.text)
i=DaysAfter(basedate,sledate)
//如果返回值是正则,前者先,返之后。
NetColorWolf 2001-10-27
  • 打赏
  • 举报
回复
可以直接对字符串进行比较:

if '1999-02-02' < '2001-02-05' then
//
end if
eastseaofdragon 2001-10-27
  • 打赏
  • 举报
回复
up
lulu037 2001-10-27
  • 打赏
  • 举报
回复
那么两个string型的日期:(格式为yyyy-mm-dd hh:mm:ss)怎么进行比较?
Iwant 2001-10-27
  • 打赏
  • 举报
回复
日期是可以比较的,不过不能这样比较。
可以用
if date("1999-1-1")>date("2001-1-1") then
...
end if
zhangchi0532 2001-10-27
  • 打赏
  • 举报
回复
使用daysafter,如下例,可以查看帮助,很简单的
DaysAfter(1998-12-29, 1999-01-03)
dreamboat 2001-10-27
  • 打赏
  • 举报
回复
将字符型取前六位,再转换为日期型,然后用afterdate()来判断时间先后就OK了。
luanqd 2001-10-27
  • 打赏
  • 举报
回复
把数据库中的时间改为yyyy-mm-dd格式之后进行比较
PrgmBird 2001-10-27
  • 打赏
  • 举报
回复
自己写一个子程序,字符串日期相比较。

1,079

社区成员

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

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