查询问题

darker 2002-07-24 10:39:04
我在SQL表中有一时间字段 格式为2002-7-24 10:13:00

我现在做查询用到了此字段 从客户端得到年和月

那我怎么能把得到的年和月与这一字段进行检索呢?

我用了like 是不是不支持时间型字段,

请大家帮我想一个主意 解决一下!
...全文
1 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
shareli_2002 2002-07-24
grsy(好梦成真) 说得没错。
select * from v_部门内信息 where year(归档时间)="2002" and month(归档时间)="7"
或者将时间换成上一页面传过来的值。select * from v_部门内信息 where year(归档时间)="&request.form("year")&" and month(归档时间)="&request.form("month")&"
如果是用oracle。则要这样写
select * from v_部门内信息 where to_char(归档时间,'yyyy-mm')='"&request.form("year")&" and month(归档时间)="&request.form("month")&"'
如果月1,则要转换成01。有多中形式自己看着办咯
回复
grsy 2002-07-24
日期在sql server 2000中是以字符串形式存储的,直接用字符串比较形式就行了。
回复
dapper 2002-07-24
试试这样:

select * from v_部门内信息 where str(year(归档时间))+'-'+str(month(归档时间))='2002-7'
回复
CSDN_HSB 2002-07-24
select * from v_部门内信息 where year(归档时间)='"&year(request("vdl")&"' and month(归档时间)='"&month(request("vd1"))&"'
回复
darker 2002-07-24
select * from v_部门内信息 where year(归档时间)+'-'+month(归档时间)=2002-7

我按照你的 却不能查询到信息,表中已有!

说说其它方法吧!
回复
freezwy 2002-07-24
方法很多,介绍一个笨的:
客户端的组合成字符串,比如vd1="2002-7"
sql中where year(字段)+'-"+month(字段)
回复
darker 2002-07-24
谢各位的指点,我自己这样实现了:

select * from 合同 where year(归档)*100+month(归档)='s1*100+s2'
回复
leeeel 2002-07-24
where yourdataFeild between year+'-'+month+'-'+"01" and year+'-'+(month+1)+'-'+"01"
...总之构造时间后再用SQL语句进行时间比较,在字段上的运算不能动用SQL的索引。。
上面的所以答案都是对的,但在大型资料库中速度会很慢!
回复
leeeel 2002-07-24
where yourdataFeild between year+'-'+month+'-'+"01" and year+'-'+(month+1)+'-'+"01"
...总之构造时间后再用SQL语句进行时间比较,在字段上的运算不能动用SQL的索引。。
上面的所以答案都是对的,但在大型资料库中速度会很慢!
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告