日期:2014-05-18  浏览次数:20421 次

最简单的问题,日期搜索,除了我,大家都应该会的
是这样,一个表,我开始没有用日期这个字段,反而用了这样的, year1,month1,day1,分别代表年月日,是int类型的,可是现在要做查询了,就出问题了,
我想查两个时间段的数据,好不容易在access里面行得通了.可是转到sqlserver里面,就又不行了.不知怎么办才好.

access里是这样的,sql=sql&" and cdate(cstr(year1)&'-'&cstr(month1)&'-'&cstr(day1)) between "&date1&" and "&date2 

date1,date2从界面上的日历选择器取得的,我不想拆开这个日期成,想组合数据库里year1,month1,day1这三个字段来查询.
我用过cast等,但好像提示说类型不正确,真的不知怎么办了.


------解决方案--------------------
把语句输出看一下. 注意, ' '定界的值之间的空格.

为了让值可能出现的错误暴露出来以便数据检索更准确, 使用以下写法:

sql=sql&" and cast(rtrim(year1) + '- ' + rtrim(month1) + '- ' +rtrim(day1) as datetime) between '"&date1&"' and '"&date2 & "'"