sql between取时间范围
我的表某个字段是Datetime型 以" YYYY-MM-DD 00:00:00" 存放
如
A 2009-01-22 21:22:22
B 2009-01-22 19:21:11
C 2009-01-22 23:10:22
时间范围查找
现在想从table1查找’2021-01-12’ 到 ‘2021-01-25’ 的数据,要求包含12日全天和26日全天的数据,
现在用
select id, gmt_create from table1 where gmt_create between '2021-01-12' and '2021-01-25';
查出来的数据包含12日全天到25日全天的数据,但没有25的任何数据。
是因为:
SQL中 between and是包括边界值的,not between不包括边界值,不过如果使用between and 限定日期需要注意,between里面的范围日期格式为 ‘2021-01-12’ ,sql 默认会在后面加上’00:00:00’ , 最后的格式为 ‘2021-01-12 00:00:00’, 所以between ‘2021-01-12’ and ‘2021-01-26’, 转化为 ‘2021-01-12 00:00:00’ and ‘2021-01-25 00:00:00’ ,即gmt_create > ‘2021-01-12 00:00:00’ and gmt_create < ‘2021-01-25 00:00:00’ ,是不包含25日全天的时间的
所有如果想从table1查找’2021-01-12’ 到 ‘2021-01-26’ 的数据,要求包含12日全天和25日全天的数据,就要写成between ‘2021-01-12’ and ‘2021-01-26’, 这是从’2021-01-12 00:00:00’ 查到’2021-01-26 00:00:00’,就包含了25日全天的数据。
以下sql等价
select id, gmt_create from table1 where gmt_create > '2021-01-12' and gmt_create < '2021-01-26';select id, gmt_create from table1 where gmt_create > '2021-01-12 00:00:00' and gmt_create < '2021-01-26 00:00:00';
#上面的两中写法不会包含'2021-01-22 00:00:00'这一刻的数据,如果想包含可以这么写:
select id, gmt_create from table1 where gmt_create > '2021-01-12 00:00:00' and gmt_create < '2021-01-26 00:00:00' or gmt_create = '2021-01-12 00:00:00';##---------------------------------------------------------------------------##
select id, gmt_create from table1 where gmt_create between '2021-01-12' and '2021-01-26';select id, gmt_create from table1 where gmt_create between '2021-01-12 00:00:00' and '2021-01-26 00:00:00';
#上面的between写法会包含'2021-01-26 00:00:00'这一刻的数据,
查某一天的数据
如果写成
select id, gmt_create from table1 where gmt_create between '2021-01-12' and '2021-01-12';
只能查出2021-01-12 00:00:00 这一刻的数据
需要写成
select id, gmt_create from table1 where gmt_create between '2021-01-12 00:00:00' and '2021-01-12 23:59:59';
或者写成这样更精确
select id, gmt_create from crowd_analysis_cache where gmt_create > '2021-01-12 00:00:00' and gmt_create < '2021-01-13 00:00:00' or gmt_create = '2021-01-12 00:00:00';
sql between取时间范围相关推荐
- sql查取时间并进行相减后存入excel
这里是封装成了一个函数 def calculate(date1, date2):detal = date2-date1#这里的时间为x day,xx:xx:xx的格式detal = str(detal ...
- SQL SERVER取时间书写方法大全
目录 (一)前言 (二)Convert函数知识 1. 定义和用法 2. 语法 3. 可以使用的 style 值 4. 实例 (三)时间函数 1. 前提 2. 常用时间函数 (1)格式 (2)实例 ( ...
- java 必备面试必备
1.JDK 和 JRE 有什么区别? JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含 ...
- oracle取时间最近的一条数据_当数据库最近一直卡顿时,第一时间应该用这条sql来分析...
概述 国庆节偷个懒,分享一个关于锁的实用sql,不过统计是实时的,如果要查看一段时间的,建议将结果插入一张中间表. 一键获取锁相关信息 SELECT mm.inst_id, mm.sid, mm.TY ...
- Sql group by 分组取时间最新的一条数据
1.取时间最新的记录 不分组有重复(多条CreateTime一样的都是最新记录) select * from test t where pid in (select PId from Test twh ...
- 数据产品-数据指标标签常用sql函数
SQL能力是作为数据产品经理必不可少的技能,当然,作为数据产品,我们对SQL的查询效率的要求可能不像开发那么高.而对于SQL的学习一般也是只需懂DQL查询语言就行,对于DCL.DDL.DML这些一般只 ...
- 常用sql操作语句实战演示
本文为原创博客,未经本人允许,禁止将本人的博客复制下来上传到百度文库等平台. 作者:合肥工业大学 管理学院 钱洋 1563178220@qq.com 目录 linux中或cmd中连接数据库 查看库名 ...
- Informix 11.5 SQL 语句性能监控方法及实现
本文主要介绍 Informix 11.5 中 SQL 语句性能监控的基本方法及实现,希望能够使大家有一个比较全面的了解. 我们知道,在数据库应用系统中,SQL 语句的性能好坏至关重要.如果 SQL 语 ...
- SQL:日期函数 year() month() day()
1 select day(createtime) from life_unite_product --取时间字段的天值 2 3 select month(createtime) from life_u ...
最新文章
- 选择将正确答案的序号填在括号里_小学四年级数学第五单元训练题,答案非常详细,见过的都保存了...
- [转贴]IT外包服务商如何构建高效率的服务台运营机制
- java sortedset_Java类集-SortedSet接口 | 学步园
- vb for循环 combobox的使用 Print的使用
- protractor端到端测试简介
- SQLServer之深度分析Insert
- 分布式 和 集群的区别
- 信息系统项目管理师---运筹学计算
- 算法面试避坑指南,助你轻松应对Java面试
- day5-ATM和购物车
- Nvidia驱动负优化与GTX1070的测试
- 第一集 斗罗世界 引子 穿越的唐家三少
- 为海思u-boot快速生成reg_info.bin文件
- 让自己的底线一降再降,相当于没有底线
- 现代操作系统学习笔记三、死锁
- [2019HDU多校第一场][HDU 6578][A. Blank]
- 论文精读-基于双目图像的视差估计方法研究以及实现
- 智慧畜牧养殖管理系统
- USB供电不足的最终解决办法
- video标签android全屏,视频video标签在移动端微信中默认全屏播放的解决方案
热门文章
- 【K8S 七】Metrics Server部署中的问题
- 金融组织数字化研发管理的12种武器
- 计算机和计算机系统是什么意思啊,电脑bios是什么意思啊
- 老板为什么不愿意给你加工资?
- 机会透视:强势股中将诞生长线牛股
- Linux /proc与/sys目录分析
- entity framework异常: Invalid object name 'dbo.xxxxxx'.
- LeetCode-518-零钱兑换二
- 经济学自身利益最大化_怎么看:亚当斯密说,追求个人利益的最大化,就是整体利益的最大化?...
- 查找网站代码漏洞对网站木马后门查杀的清除