首页 新闻 会员 周边 捐助

请教SQL语句根据这几个条件

0
悬赏园豆:10 [待解决问题]

开始时间     结束时间      通过地点    数据类型   车牌号码 

starttime   endtime       area            sjlx        way

 根据这几个条件查询的数据出来;

 

前台传递的时间类型是字符串类型,数据库里是date类型 这个怎么转换

 

查询条件是5个 where后面都要用and 连接?

问题补充:

JGSJ

2012/12/5 7:33:53

2012/12/5 8:36:11

2012/12/5 8:27:42
2012/12/5 8:43:28
2012/12/5 8:11:37
2012/12/5 7:07:33
2012/12/5 7:26:30
2012/12/5 8:32:22

数据库时间格式是这样的

我查询的时候 是这么写的

select * from PASS_DATA where JGSJ=to_date('2012/12/05','yyyy/mm/dd');

问题是查不出东西啊 空 语句对

询问java1的主页 询问java1 | 初学一级 | 园豆:72
提问于:2013-11-22 11:08
< >
分享
所有回答(4)
0

如果是且的关系是要AND 如果是或的关系 那就是OR.

CONVERT() 函数是把日期转换为新数据类型的通用函数 这个函数你可能会用到的。

葬神 | 园豆:170 (初学一级) | 2013-11-22 11:11

语句写错了吧  where to_date(JGSJ,'yyyy/mm/dd') = '2012/12/05'

支持(0) 反对(0) 葬神 | 园豆:170 (初学一级) | 2013-11-22 11:52
0

是的用AND

前台传来的数据是字符串,可以传化为日期类型的.也可以把数据库里的日期转化为字符来和前台的日期字符串比较.

Albert Fei | 园豆:2102 (老鸟四级) | 2013-11-22 11:19
0

查询Sql的时候,注意下条件的优先级,可以把车牌号码放在第一位,这样筛选出来效率应该会高点,针对前台是字符串类型,数据库是date类型,转换一下数据类型即可。

雾静 | 园豆:561 (小虾三级) | 2013-11-22 11:24
0

select * from PASS_DATA where JGSJ=to_date('2012/12/05','yyyy/mm/dd');  你这个语句是在C#里边写的么?            如果是:   日期格式在sql里边直接加单引号就可以了 select * from PASS_DATA where JGSJ='2012/12/05'

mushishi | 园豆:430 (菜鸟二级) | 2013-11-22 11:56

这是java写的程序 对应oracle数据库 前台的是字符串类型 数据库里存的date类型

支持(0) 反对(0) 询问java1 | 园豆:72 (初学一级) | 2013-11-22 12:00

@询问java1:   oracle的是:select * from TTest where trunc(JGSJ) = To_char('2012/12/05','yyyy/mm/dd');            

ps: 你这样的问题应该查查对应数据库的语句的差别

支持(0) 反对(0) mushishi | 园豆:430 (菜鸟二级) | 2013-11-22 13:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册