日期查询的问题。实在是简单,但对我这个初学者来说:难!

soft_dream 2001-07-19 02:56:52
我设定的日期字段为字符型,我在查询时有这么个问题,就是如果别人输入的日期格式
为2001-7-9,那么我查的时候,大于2001-7-9的时候那些2001-08-11,什么的都出不来。怎么解决?不能字符比较。怎么比?
...全文
119 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
fool_chen 2001-07-20
  • 打赏
  • 举报
回复
在别人输入之后,将其格式化
Format("2001-7-9", "YYYY-MM-DD")
完全同意
hoofi 2001-07-20
  • 打赏
  • 举报
回复
和库也有关的,access 和mssql的date不一样 mssql 可以用 '2001-1-1' 但是access就不可以. 还有就是利用format 转换.......
good luck
chinaonei 2001-07-19
  • 打赏
  • 举报
回复
用SP写一个带日期转换的SQL语句
wolfw 2001-07-19
  • 打赏
  • 举报
回复
将数据format先...
Ganman 2001-07-19
  • 打赏
  • 举报
回复
在别人输入之后,将其格式化
Format("2001-7-9", "yyyy-mm-dd")
houyingjun 2001-07-19
  • 打赏
  • 举报
回复
编程序时细心点
little_hero 2001-07-19
  • 打赏
  • 举报
回复
upup!
Netis_Sun 2001-07-19
  • 打赏
  • 举报
回复
1.你的数据查询是在数据库的话可以将数据转换为日期时间后再比较:
假定@day='2001-7-9'
SELECT @dt=@day+' 0:0:0.000'
SELECT * FROM table WHERE dt>@dt

2.如果不是你可以尝试将他人输入的东西格式化:
dim yr,mn,dy,dt as string
yr=cstr(year(datevar))
mn=cstr(month(datever))
dy=cstr(day(dateever))
if month(datevar)<10 then mn="0"+mn
if day(datevar)<10 then dy="0"+dy
if len(cstr(year(datevar))=2 then yr="20"+yr --在98下的情况年用两位表示
dt=yr+"-"+mn+"-"+dy
cqq_chen 2001-07-19
  • 打赏
  • 举报
回复
主要看你定义的类型,如果你在数据库中把日期型都当成字符型处理就很不一样了,如果是日期型的,则如下方法:
dim str1 as string
dim rqvar as date
rqvar="2001-7-9"
str1="select * from t1 where rq>=#" & format(rqvar,"mm/dd/yyyy") & "#"
set sc=db.openrecordset(str1)
就可以了。
lianghn 2001-07-19
  • 打赏
  • 举报
回复
我一直建议大家不要使用日期型字段,但是有一个前提:任何时候都按字符处理。别人输入的日期值也要处理一下啊!没看见长度都不一样吗?Len("2001-7-9")<Len("2001-08-11")
知道了吧!
wbdx 2001-07-19
  • 打赏
  • 举报
回复
你怎么写的查询语句

7,762

社区成员

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

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