请教分时间段查询的问题

时间:2021-11-05 11:27:28

请教分时间段查询的问题如图想实现一个分类查询功能,前四个查询功能已实现,但是最后两个的时间段查询写的代码却无法实现。上面的是开始时间,下面的是结束时间,想实现两个时间都勾选时,可查询某一时间段的数据。请各位大神给看看错误在哪,谢谢。代码如下

string queryselect = "select * from jt where 1=1 ";
            
            if (cb1.Checked)
            {
                queryselect += " and model = '" + cbbcategory.Text + " '";
            }
            if (cb2.Checked)
            {
                queryselect += " and modelnumber" + " like '%" + txtMN.Text + "%'";
            }
            if (cb3.Checked)
            {
                queryselect += " and problemdescribe" + " like '%" + cbbQC.Text + "%'";
            }
            if (cb4.Checked)
            {
                queryselect += " and author" + " like '%" + txtAuthor.Text + "%'";
            }
            //if (cb5.Checked)
            //{
                //queryselect += " and data" + " like '%" + txtTime.Text + "%'";
            //}
            if (cb5.Checked && cb6.Checked)
            {
               string ss = startTime.Value.ToString("yyyy-MM-dd 00:00:00");
               string ee = endTime.Value.ToString("yyyy-MM-dd 00:00:00");
               queryselect = "select * from jt where data >= '" + ss + "' and '" + ee + "'";
            }

16 个解决方案

#1


if(cb5.Checked)
{
  string ss = startTime.Value.ToString("yyyy-MM-dd 00:00:00");
  queryselect+="data>="+ss;
}
if(cb6.Checked)
{
  string ee = endTime.Value.ToString("yyyy-MM-dd 00:00:00");
  queryselect+="data<="+ee;
}

#2


queryselect = "select * from jt where data between '" + ss + "' and '" + ee + "'";

??

#3


引用 1 楼 guwei4037 的回复:
if(cb5.Checked)
{
  string ss = startTime.Value.ToString("yyyy-MM-dd 00:00:00");
  queryselect+="data>="+ss;
}
if(cb6.Checked)
{
  string ee = endTime.Value.ToString("yyyy-MM-dd 00:00:00");
  queryselect+="data<="+ee;
}
按这个方法还是报错,查询不出来。。。

#4


报错信息是“语法错误 (操作符丢失) 在查询表达式 '1=1  data >=2013-06-01 00:00:00 data<=2013-06-10 00:00:00' 中。“

#5


用1楼和3楼的方法应该都可以吧

if (cb5.Checked && cb6.Checked)
            {
               string ss = startTime.Value.ToString("yyyy-MM-dd 00:00:00");
               string ee = endTime.Value.ToString("yyyy-MM-dd 00:00:00");
               queryselect = "select * from jt where data >= '" + ss + "' and  data<='" + ee + "'";
            }

#6


还是实现不了,请高手能给解答一下,谢谢

#7


查询不出来报错,你总得看看错误信息吧?你得看看最后的sql语句是啥样的吧?上面给了你思路或者代码,就该自己动动脑子了,不能老等着别人把饭用筷子夹了送到你嘴边你才会吃。

#8


引用 2 楼 slyzly 的回复:
queryselect = "select * from jt where data between '" + ss + "' and '" + ee + "'";

??
  我之前用的都是二楼的方式。  between  and 

#9


引用 7 楼 soaringbird 的回复:
查询不出来报错,你总得看看错误信息吧?你得看看最后的sql语句是啥样的吧?上面给了你思路或者代码,就该自己动动脑子了,不能老等着别人把饭用筷子夹了送到你嘴边你才会吃。
 我要是按着这些思路能正确调出来就不在这发帖继续占用大家的时间了!论坛就是群策群力,有困难大家能帮则帮,不能帮也用不着你在这教育人吧,再说你有什么资格教育别人!你要能解决问题你怎么不回答,最厌恶那些半瓶子醋的人!有些问题高手一看,马上就知道解决办法,这样初学者也能提高学习效率,如果遇到问题都装X,告诉别人自己找答案去,动脑子去,这种人大家在工作中也经常遇到,也是很厌恶的吧!或者那人明明就会,缺德就是不告诉你,或者那人压根白痴一个,就是装X了!吐槽而已,切勿对号入座! 请教分时间段查询的问题

#10


你先去看下 存在数据库里的时间是什么格式的

#11


根据报错来看 data 的数据格式 不该用 》= 《= 这样的操作符来判断 ,我建议如果图取便利,存进去的时候用INT存,这里判断时间也直接转化为INT型的,那样 前面的几种写法都是对的 

#12


已楼的少了“and”

#13


1楼少了and,并且ss和ee因该加单引号,然后就可以了吧

#14


自己调试一下,然后把生成的语句到数据库试一下什么都知道了

#15


引用 9 楼 zonezq 的回复:
Quote: 引用 7 楼 soaringbird 的回复:

查询不出来报错,你总得看看错误信息吧?你得看看最后的sql语句是啥样的吧?上面给了你思路或者代码,就该自己动动脑子了,不能老等着别人把饭用筷子夹了送到你嘴边你才会吃。
 我要是按着这些思路能正确调出来就不在这发帖继续占用大家的时间了!论坛就是群策群力,有困难大家能帮则帮,不能帮也用不着你在这教育人吧,再说你有什么资格教育别人!你要能解决问题你怎么不回答,最厌恶那些半瓶子醋的人!有些问题高手一看,马上就知道解决办法,这样初学者也能提高学习效率,如果遇到问题都装X,告诉别人自己找答案去,动脑子去,这种人大家在工作中也经常遇到,也是很厌恶的吧!或者那人明明就会,缺德就是不告诉你,或者那人压根白痴一个,就是装X了!吐槽而已,切勿对号入座!

你这种人,怎么说你好呢,你还好意思吐槽?说你不动脑子难道错了吗?只想别人给你指出怎么改而不想知道为什么错了为什么这么改?
你在4楼贴的错误信息已经明确告诉你了,sql语法错误,你就不会了?

#16


引用 15 楼 soaringbird 的回复:
Quote: 引用 9 楼 zonezq 的回复:

Quote: 引用 7 楼 soaringbird 的回复:

查询不出来报错,你总得看看错误信息吧?你得看看最后的sql语句是啥样的吧?上面给了你思路或者代码,就该自己动动脑子了,不能老等着别人把饭用筷子夹了送到你嘴边你才会吃。
 我要是按着这些思路能正确调出来就不在这发帖继续占用大家的时间了!论坛就是群策群力,有困难大家能帮则帮,不能帮也用不着你在这教育人吧,再说你有什么资格教育别人!你要能解决问题你怎么不回答,最厌恶那些半瓶子醋的人!有些问题高手一看,马上就知道解决办法,这样初学者也能提高学习效率,如果遇到问题都装X,告诉别人自己找答案去,动脑子去,这种人大家在工作中也经常遇到,也是很厌恶的吧!或者那人明明就会,缺德就是不告诉你,或者那人压根白痴一个,就是装X了!吐槽而已,切勿对号入座!

你这种人,怎么说你好呢,你还好意思吐槽?说你不动脑子难道错了吗?只想别人给你指出怎么改而不想知道为什么错了为什么这么改?
你在4楼贴的错误信息已经明确告诉你了,sql语法错误,你就不会了?
你算个什么东西,用得着你在这教育别人?这是技术讨论的地方,不是你逃避现实的地方(想必在公司当孙子惯了,来这欺负欺负新手,装装人物吧,新手不懂的很多,问个问题怎么了,你看你这堆废话,真不是个爷们,滚远点!)。同时感谢楼上除装B的人,所有给我回复技术难题的大侠们。孙子滚远点!

#1


if(cb5.Checked)
{
  string ss = startTime.Value.ToString("yyyy-MM-dd 00:00:00");
  queryselect+="data>="+ss;
}
if(cb6.Checked)
{
  string ee = endTime.Value.ToString("yyyy-MM-dd 00:00:00");
  queryselect+="data<="+ee;
}

#2


queryselect = "select * from jt where data between '" + ss + "' and '" + ee + "'";

??

#3


引用 1 楼 guwei4037 的回复:
if(cb5.Checked)
{
  string ss = startTime.Value.ToString("yyyy-MM-dd 00:00:00");
  queryselect+="data>="+ss;
}
if(cb6.Checked)
{
  string ee = endTime.Value.ToString("yyyy-MM-dd 00:00:00");
  queryselect+="data<="+ee;
}
按这个方法还是报错,查询不出来。。。

#4


报错信息是“语法错误 (操作符丢失) 在查询表达式 '1=1  data >=2013-06-01 00:00:00 data<=2013-06-10 00:00:00' 中。“

#5


用1楼和3楼的方法应该都可以吧

if (cb5.Checked && cb6.Checked)
            {
               string ss = startTime.Value.ToString("yyyy-MM-dd 00:00:00");
               string ee = endTime.Value.ToString("yyyy-MM-dd 00:00:00");
               queryselect = "select * from jt where data >= '" + ss + "' and  data<='" + ee + "'";
            }

#6


还是实现不了,请高手能给解答一下,谢谢

#7


查询不出来报错,你总得看看错误信息吧?你得看看最后的sql语句是啥样的吧?上面给了你思路或者代码,就该自己动动脑子了,不能老等着别人把饭用筷子夹了送到你嘴边你才会吃。

#8


引用 2 楼 slyzly 的回复:
queryselect = "select * from jt where data between '" + ss + "' and '" + ee + "'";

??
  我之前用的都是二楼的方式。  between  and 

#9


引用 7 楼 soaringbird 的回复:
查询不出来报错,你总得看看错误信息吧?你得看看最后的sql语句是啥样的吧?上面给了你思路或者代码,就该自己动动脑子了,不能老等着别人把饭用筷子夹了送到你嘴边你才会吃。
 我要是按着这些思路能正确调出来就不在这发帖继续占用大家的时间了!论坛就是群策群力,有困难大家能帮则帮,不能帮也用不着你在这教育人吧,再说你有什么资格教育别人!你要能解决问题你怎么不回答,最厌恶那些半瓶子醋的人!有些问题高手一看,马上就知道解决办法,这样初学者也能提高学习效率,如果遇到问题都装X,告诉别人自己找答案去,动脑子去,这种人大家在工作中也经常遇到,也是很厌恶的吧!或者那人明明就会,缺德就是不告诉你,或者那人压根白痴一个,就是装X了!吐槽而已,切勿对号入座! 请教分时间段查询的问题

#10


你先去看下 存在数据库里的时间是什么格式的

#11


根据报错来看 data 的数据格式 不该用 》= 《= 这样的操作符来判断 ,我建议如果图取便利,存进去的时候用INT存,这里判断时间也直接转化为INT型的,那样 前面的几种写法都是对的 

#12


已楼的少了“and”

#13


1楼少了and,并且ss和ee因该加单引号,然后就可以了吧

#14


自己调试一下,然后把生成的语句到数据库试一下什么都知道了

#15


引用 9 楼 zonezq 的回复:
Quote: 引用 7 楼 soaringbird 的回复:

查询不出来报错,你总得看看错误信息吧?你得看看最后的sql语句是啥样的吧?上面给了你思路或者代码,就该自己动动脑子了,不能老等着别人把饭用筷子夹了送到你嘴边你才会吃。
 我要是按着这些思路能正确调出来就不在这发帖继续占用大家的时间了!论坛就是群策群力,有困难大家能帮则帮,不能帮也用不着你在这教育人吧,再说你有什么资格教育别人!你要能解决问题你怎么不回答,最厌恶那些半瓶子醋的人!有些问题高手一看,马上就知道解决办法,这样初学者也能提高学习效率,如果遇到问题都装X,告诉别人自己找答案去,动脑子去,这种人大家在工作中也经常遇到,也是很厌恶的吧!或者那人明明就会,缺德就是不告诉你,或者那人压根白痴一个,就是装X了!吐槽而已,切勿对号入座!

你这种人,怎么说你好呢,你还好意思吐槽?说你不动脑子难道错了吗?只想别人给你指出怎么改而不想知道为什么错了为什么这么改?
你在4楼贴的错误信息已经明确告诉你了,sql语法错误,你就不会了?

#16


引用 15 楼 soaringbird 的回复:
Quote: 引用 9 楼 zonezq 的回复:

Quote: 引用 7 楼 soaringbird 的回复:

查询不出来报错,你总得看看错误信息吧?你得看看最后的sql语句是啥样的吧?上面给了你思路或者代码,就该自己动动脑子了,不能老等着别人把饭用筷子夹了送到你嘴边你才会吃。
 我要是按着这些思路能正确调出来就不在这发帖继续占用大家的时间了!论坛就是群策群力,有困难大家能帮则帮,不能帮也用不着你在这教育人吧,再说你有什么资格教育别人!你要能解决问题你怎么不回答,最厌恶那些半瓶子醋的人!有些问题高手一看,马上就知道解决办法,这样初学者也能提高学习效率,如果遇到问题都装X,告诉别人自己找答案去,动脑子去,这种人大家在工作中也经常遇到,也是很厌恶的吧!或者那人明明就会,缺德就是不告诉你,或者那人压根白痴一个,就是装X了!吐槽而已,切勿对号入座!

你这种人,怎么说你好呢,你还好意思吐槽?说你不动脑子难道错了吗?只想别人给你指出怎么改而不想知道为什么错了为什么这么改?
你在4楼贴的错误信息已经明确告诉你了,sql语法错误,你就不会了?
你算个什么东西,用得着你在这教育别人?这是技术讨论的地方,不是你逃避现实的地方(想必在公司当孙子惯了,来这欺负欺负新手,装装人物吧,新手不懂的很多,问个问题怎么了,你看你这堆废话,真不是个爷们,滚远点!)。同时感谢楼上除装B的人,所有给我回复技术难题的大侠们。孙子滚远点!