数据库中如何查询2个时间段内的数据

ba_wang_mao 2020-08-21 11:33:38
1、数据库有2个和时间有关的字段:
lgidate ---> DATE型字段
lgitime ---> TIME型字段

2、数据库内的记录如下


3、我使用如下查询语句

想查询 2020年8月20日17时:16分:41秒开始,到2020年8月21日09时:50分:32秒结束这个时间段内的所有数据

    select *from table1 where lgidate>="2020-08-20" and lgitime>="17:16:41"  and lgidate<="2020-08-21" and lgitime<="09:50:32";;


结果一个也查询不到
...全文
1308 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ba_wang_mao 2020-08-21
  • 打赏
  • 举报
回复
我单独查询DATE字段时间段是正确的,但是一增加TIME字段就错
ba_wang_mao 2020-08-21
  • 打赏
  • 举报
回复
DATE字段和TIME字段的时间段数据读取成功啦! (1).代码1 protected void Button1_Click(object sender, EventArgs e) { string startTime = TextBox1.Text.ToString().Trim(); string endTime = TextBox2.Text.ToString().Trim(); string constr = "Server=localhost;UserId=root;Password=68331;Database=userreco;pooling=false;CharSet=utf8;port=3306";//声明一个字符串用来存放连接数据库的信息 MySqlConnection con = new MySqlConnection(constr);//创建一个SqlConnection对象 try { con.Open(); MySqlCommand cmd = new MySqlCommand(); cmd.Connection = con; cmd.CommandText = "select * from table1 where CONCAT(lgidate,' ',lgitime)>='" + startTime + "' and CONCAT(lgidate,' ',lgitime)<='" + endTime + "' "; MySqlDataReader reader = cmd.ExecuteReader(); DataTable dt = ReaderToTable(reader); con.Close(); con.Dispose(); cmd.Dispose(); reader.Close(); dt.Dispose(); } catch (Exception ex) { Response.Write(ex.Message); } finally { con.Close();//关闭数据库连接 } } (2)、代码2
 protected void Button2_Click(object sender, EventArgs e)
        {
            string startTime = TextBox1.Text.ToString().Trim();
            string endTime = TextBox2.Text.ToString().Trim();
            //创建字符串连接
            string constr = "Server=localhost;UserId=root;Password=31;Database=userreco;pooling=false;CharSet=utf8;port=3306";//声明一个字符串用来存放连接数据库的信息
            MySqlConnection sqlconn = new MySqlConnection(constr);//创建一个SqlConnection对象

            //MySqlDataAdapter sqlda = new MySqlDataAdapter("select * from table1 where CONCAT(lgidate,' ',lgitime)>='" + startTime + "' ", sqlconn);
            MySqlDataAdapter sqlda = new MySqlDataAdapter("select * from table1 where CONCAT(lgidate,' ',lgitime)>='" + startTime + "' and CONCAT(lgidate,' ',lgitime)<='" + endTime + "'   ", sqlconn);
            DataSet ds = new DataSet();
            sqlda.Fill(ds);
            this.GridView1.DataSource = ds;
            this.GridView1.DataBind();
        }
晨易夕 2020-08-21
  • 打赏
  • 举报
回复
引用 2 楼 晨易夕 的回复:
将两个字段的内容合并组成yyyy-MM-dd HH:mm:ss之后的格式再执行条件查询。
比如
SELECT * FROM table1 WHERE CONCAT(lgidate,' ',lgitime)>='yyyy-MM-dd HH:mm:ss'
ba_wang_mao 2020-08-21
  • 打赏
  • 举报
回复
     select *from table1 where CONCAT(lgidate,' ',lgitime)>='2020-08-20 17:12:16' and CONCAT(lgidate,' ',lgitime)<='2020-08-21 11:58:25';
ManBOyyy 2020-08-21
  • 打赏
  • 举报
回复
或者把兩種轉為字符串,用between and
ManBOyyy 2020-08-21
  • 打赏
  • 举报
回复
樓上說的對,合併成datatime 用函數to_date(aaaa,yyyy-mm-dd hh24:mi:ss) aaa字符串轉為日期yyyy-mm-dd hh24:mi:ss
晨易夕 2020-08-21
  • 打赏
  • 举报
回复
将两个字段的内容合并组成yyyy-MM-dd HH:mm:ss之后的格式再执行条件查询。
    目前数据分析已经深入到各个行业,尤其以Python为工具的数据分析和数据挖掘将越来越流行,但在数据分析和挖掘,最消耗时间的就是数据处理了,高效的数据处理技能已经成为工作必不可少的技能之一了。熟练掌握和运用Python对数据进行高效的处理,可以大大提高数据分析和数据挖掘的效率。    Python数据处理实战: 基于真实场景的数据(Python数据处理和特征工程)作为Python数据清洗实战入门课程的升级版,本课程以真实的场景数据为案例进行教学,包括征信,电商,零售数据等, 本课程由浅入深详细讲解Python数据处理和特征工程在真实项目的运用, 本课程专门针对想深入学习Python数据处理而量身定做的课程,是讲师在多年真实项目和实践工作的总结,涵盖实际项目主要的知识点,内容详尽,代码可读性及实操性强。     掌握好数据处理和特征工程,有利于今后从事或者转行数据分析或者数据挖掘,以及解决工作和项目遇到的各种数据处理问题。课程目标:1.熟悉数据处理的流程和方法 2.熟练掌握pandas和numpy的运用 3.举一反三,能够独立完成数据分析数据处理阶段的任务 4.提高数据处理能力,在项目能够事半功倍课程定位: 1.   零基础学员或者有一定基础学员、大院校学生;2.   在职从事数据分析相关工作以及打算转行Python数据分析人员; 3.   对Python有兴趣人群。 课程特色   1.   相关代码老师课堂上全部打出,方便理解和记忆;   2.   提供源代码和数据方便同学们预习和复习;   3.   使用真实的数据进行教学,紧贴实战,避免枯燥的理论;   4.   在教学过程,尽可能多的使用图表教学;  5.    每一个章节后面都配有相关练习题目以及习题答案,方便同学们进行自我测试。 课程学习环境: Python3.7版本 讲师介绍:    Peter, 某科技公司高级量化分析师,金融数学硕士毕业,擅长数据分析和数据挖掘,在公司长期从事机器学习建模,拥有多家银行,消费金融和互联网金融风控建模经验。熟练掌握Python编程软件和数据等软件.

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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