sqlserver2000时间查询问题?(up有分)

yijianskuy 2004-11-12 03:40:04
小弟用了 一个js生成时间日历的小程序 生成2004/11/25
这种形式

我用strDate=Request("insureover")
insureover = CDate(replace(strDate,"/","-"))
Response.Write(insureover)
写成了2004-10-11和数据库中insureover比较
数据库中的 用insureover datetime 存的
想 输入2004 查询出2004年 所有的东西
2004/11查出 11份所有的
2004/11/25就查出这个准确的时间
这种查询如何写 请大侠帮忙 小弟写成
sql= "select * from usertable where insureover = '" & insureover & "' order by id desc"
这是准确的
sql= "select * from usertable where insureover like '%" & insureover & "%' order by id
desc"就是空
...全文
161 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
yijianskuy 2004-11-12
  • 打赏
  • 举报
回复
非常感谢 !小弟接贴 了
zlj113 2004-11-12
  • 打赏
  • 举报
回复
测试:


create table #dd (insureover datetime)

insert into #dd (insureover) values ('2004-01-03')
insert into #dd (insureover) values ('2004-11-25')
insert into #dd (insureover) values ('2004-06-23')

insert into #dd (insureover) values ('2004-09-03')
insert into #dd (insureover) values ('2004-10-03')

insert into #dd (insureover) values ('2004-11-03')



select * from #dd where convert(varchar(11),insureover,121) like '%2004-11-03%'

结果为:2004-11-03 00:00:00.000


select * from #dd where convert(varchar(11),insureover,121) like '%2004%'
结果为:2004-01-03 00:00:00.000
2004-01-03 00:00:00.000
2004-11-25 00:00:00.000
2004-06-23 00:00:00.000
2004-09-03 00:00:00.000
2004-10-03 00:00:00.000




select * from #dd where convert(varchar(11),insureover,121) like '%2004-11%'
结果为:2004-11-25 00:00:00.000
2004-11-03 00:00:00.000

2004-11-03 00:00:00.000
yijianskuy 2004-11-12
  • 打赏
  • 举报
回复
小弟不是很明白 不熟悉如何 分离出来进行判断 请您写全点好吗 我新手一个 没有解决到这些东西
zlj113 2004-11-12
  • 打赏
  • 举报
回复
select * from u_table where convert(varchar(11),insureover,121) like '%" & insureover & "%' order by id


附:convert(varchar(11),insureover,121)把insrueover字段格式转换成了yyyy-mm-dd这种格式,你的insureover也要是这种格式才行。
alern_zyb 2004-11-12
  • 打赏
  • 举报
回复
insureover你可以判断是输入的只有年,还是年月,还是具体哪一天,然后才用我的方法判断啊,
applezhao 2004-11-12
  • 打赏
  • 举报
回复
关注 等大虾说清楚
我也有这个问题 好久了 没有想明白 同情楼主
同时接分
cncca 2004-11-12
  • 打赏
  • 举报
回复
up!!
yijianskuy 2004-11-12
  • 打赏
  • 举报
回复
split 还是别的分离成
yijianskuy 2004-11-12
  • 打赏
  • 举报
回复
alern_zyb(alern) 大哥'2004-11-11' 这只是一个日期 前台传递值是insureover
能帮忙写成 通用点 谢谢 !
redondo520 2004-11-12
  • 打赏
  • 举报
回复
还以为是跨时段查询呢,原来不是
up吧
alern_zyb 2004-11-12
  • 打赏
  • 举报
回复
if insureover ='2004' then
sql= "select * from usertable where year(insureover) = '" & insureover & "' order by id desc"
end if
if insureover ='2004-11' then
insureover =cdate(insureover & "-01")
sql= "select * from usertable where year(insureover) = '" & year(insureover) & "' and year(insureover) = '" & year(insureover) & "' order by id desc"
end if
if insureover ='2004-11-11' then
sql= "select * from usertable where insureover = '" & cdate(insureover) & "' order by id desc"
end if
jnhfly 2004-11-12
  • 打赏
  • 举报
回复
再up,up,up,
jnhfly 2004-11-12
  • 打赏
  • 举报
回复
我帮你up,up
yijianskuy 2004-11-12
  • 打赏
  • 举报
回复
没有关系 那位大虾给小弟解决一下 小弟搜索了很多时间问题 可是就是没有想明白我这个问题如何写
zhuxiaojun2002 2004-11-12
  • 打赏
  • 举报
回复
抱歉,浪费你时间了,我看了
yijianskuy 2004-11-12
  • 打赏
  • 举报
回复
大哥说明白点
yijianskuy 2004-11-12
  • 打赏
  • 举报
回复
没有想明白
zhuxiaojun2002 2004-11-12
  • 打赏
  • 举报
回复
A. 同时使用 CAST 和 CONVERT
每个示例都将检索书名(这些图书的截止当前销售额的第一位数字为 3),并将这些图书的 ytd_sales 转换为 char(20)。

-- Use CAST.
USE pubs
GO
SELECT SUBSTRING(title, 1, 30) AS Title, ytd_sales
FROM titles
WHERE CAST(ytd_sales AS char(20)) LIKE '3%'
GO
sql server帮助中的,应该可以这样用
yijianskuy 2004-11-12
  • 打赏
  • 举报
回复
是转 传过来的数据 还是 转数据库中的格式
zhuxiaojun2002 2004-11-12
  • 打赏
  • 举报
回复
insureover 是不是datetime要用cast转一下。我猜地
加载更多回复(2)

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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