postgresql 实现查询某时间区间的所有日期案例
核心sql如下:
select daytime::date from generate_series( ('2017-06-01'),--查询开始日期(可根据需求调整) (select now()::date),--查询结束日期(可根据需求调整) '1 day'--间隔(可根据需求调整) ) s(daytime)
以上sql,得到结果为从6月1号到今天这个时间区间内的每天的日期,如下:
举例说明:
查询tableA所有time_period区间内的日期,time_period的数据格式为:20170101-20170120;
select daytime,periods from (select daytime::date from generate_series( (select min(score_date) from tableA),--查询开始日期 (select now()::date),--查询结束日期 '1 day'--间隔 ) s(daytime)) t ,tableA where (t.daytime >((substr(time_period,0,5)||'-'||substr(time_period,5,2)||'-'||substr(time_period,7,2))::timestamp + '-1 day')::date ) and t.daytime <((substr(time_period,10,4)||'-'||substr(time_period,14,2)||'-'||substr(time_period,16,2))::timestamp + '1 day')::date
补充:PostgreSQL查找某个时间段内某条数据(订单)的最大创建时间、最小创建时间
sql语句:
select max(created_date),min(created_date) from biz_retail_order where source_order_no like '%daling_qa11184_%' and created_date > '2020-11-18 15:30:00' ;
结果为:
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
postgresql数据库根据年月查询出本月的所有数据操作
表里的所有数据: 现在我要根据创建时间的 年月查询 当月所有的数据 比如前台传给我一个年月的字段planTimeMonth,值为2018-06 那么我们需要查询创建时间为6月份的所有数据 sql: java代码中sql拼接: criteria.andCondition("to_char(crt_time, 'yyyy-mm')='"+query.get("planTimeMonth").toString()+"'"); 补充:postgresql
-
PostgreSQL图(graph)的递归查询实例
背景 在树形递归查询这篇文章,我记录了使用CTE语法查询树形结构的办法.在一个树形结构中,每一个节点最多有一个上级,可以有任意个数的下级. 在实际场景中,我们还会遇到对图(graph)的查询,图和树的最大区别是,图的节点可以有任意个数的上级和下级.如下图所示 因为图可能存在loop结构(上图红色箭头),所以在使用CTE递归的过程中,必须要破环(break loop),否则算法就会进入无限递归,永不结束. 存储和查询图结构,目前当红数据库是neo4j,但是当数据量只有十几万条的时候,Postgre
-
Postgresql 实现查询一个表/所有表的所有列名
假设postgres有数据库testdb 在testdb下执行下列sql语句,得到所有表的信息 select * from information_schema.columns where table_schema='public' and table_name<>'pg_stat_statements'; 在testdb下执行下列sql语句,得到所有表的列名 select column_name from information_schema.columns where table_sche
-
postgresql通过索引优化查询速度操作
当数据量比较大的时候,提升查询效率就是需要去考虑的事情了.一个百万级别的表格,如果不做任何优化的话,即使是最简单的查询语句执行起来也是慢的让人难以接受:当然"优化"本身是一个比较复杂的工程,从设计表.字段到查询语句的写法都有很多讲究,这里只考虑索引的方式,且是最普通的索引: 下面的操作中对应数据库表w008_execrise_info(8000数据量), w008_wf02_info(4000数据量) 1 任务表数据 SELECT w.* FROM w008_wf02_info w W
-
PostgreSQL 分页查询时间的2种比较方法小结
数据库中存了3000W条数据,两种分页查询测试时间 第一种 SELECT * FROM test_table WHERE i_id> 1000 limit 100; Time: 0.016s 第二种 SELECT * FROM test_table limit 100 OFFSET 1000; Time: 0.003s 第一种 SELECT * FROM test_table WHERE i_id> 10000 limit 100; Time: 0.004s 第二种 SELECT * FROM
-
postgresql查询锁表以及解除锁表操作
1.-- 查询ACTIVITY的状态等信息 select T.PID, T.STATE, T.QUERY, T.WAIT_EVENT_TYPE, T.WAIT_EVENT, T.QUERY_START from PG_STAT_ACTIVITY T where T.DATNAME = '数据库用户名'; 上面查询结果中:pid就是ACTIVITY的唯一标识,state就是活动状态,query就是正在执行的sql语句,query--start就是开始执行的时间. 2.-- 查询死锁的ACTIVIT
-
postgresql 实现查询某时间区间的所有日期案例
核心sql如下: select daytime::date from generate_series( ('2017-06-01'),--查询开始日期(可根据需求调整) (select now()::date),--查询结束日期(可根据需求调整) '1 day'--间隔(可根据需求调整) ) s(daytime) 以上sql,得到结果为从6月1号到今天这个时间区间内的每天的日期,如下: 举例说明: 查询tableA所有time_period区间内的日期,time_period的数据格式为:201
-
postgresql 获取两个时间类型小时差值案例
我就废话不多说了,看代码吧~ select extract(day from t) * 24 + extract(hour from t) from (select (timestamp '2013-12-14 12:00:00' - timestamp '2013-12-11 4:00:00') as t) as a; 例如a表中有start,end俩字段 select extract(day from (end-start)) * 24 + extract(hour from (end-st
-
Mysql查询时间区间日期列表实例代码
目录 1.查询时间区间日期列表,不会由于数据表数据影响 2.创建视图可以公共使用 3.创建为视图之后,可以通过视图查询时间区间列表日期 4.查询时间区间按月 附:在对mysql的时间进行区间查询的时候出现的问题 总结 1.查询时间区间日期列表,不会由于数据表数据影响 select a.date from ( select curdate() - INTERVAL (a.a + (10 * b.a) + (100 * c.a) + (1000 * d.a) ) DAY as date from (
-
PostgreSQL中常用的时间日期脚本使用教程
获取系统时间函数 select now(); --2013-11-28 16:20:25.259715+08 select current_timestamp; --2013-11-28 16:20:38.815466+08 select current_date; --2013-11-28 select current_time; --16:21:08.981171+08 时间的计算 --使用interval select now()+interval '2 day'; --2013-11-3
-
PHP得到某段时间区间的时间戳 php定时任务
这两天要实现这样功能: 当达到某一条件时,让服务器发短信给用户,数量为多条. 基本思路:linux 定时扫描,若有满足条件的用户,则发送短信. 但为了防止打扰到用户,要求只能在白天8:00-20:00发送短信,怎么样获得到每天的这段时间区间? 请看 复制代码 代码如下: $y=date("Y",time()); $m=date("m",time()); $d=date("d",time()); $start_time = mktime(9, 0,
-
MySQL5.7慢查询日志时间与系统时间差8小时原因详解
在对慢查询进行查看的时候发现时间不对,正好与系统时间相差8个小时. 1.慢查询显示时间如下 # Time: 2020-01-10T06:42:24.940811Z 2.系统时间 $ date Fri Jan 10 14:42:31 CST 2020 3.查看数据库参数 mysql> show variables like 'log_timestamps'; +----------------+-------+ | Variable_name | Value | +----------------
-
Python 判断时间是否在时间区间内的实例
判断时间是否在时间区间内 大家都知道 3<4<5这种连等式判断在python中是可行的 >>> 3<4<5 True 那么给定时间是否在时间区间内,也可以用连等式来判断 # 给定两个时间来比较下 >>> from datetime import datetime >>> a=datetime.now() >>> b=datetime.now() >>> a datetime.datetime(
-
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
django admin管理工具有很多好用的功能,例如搜索框.筛选器等,编码简单,功能强大. 但是常规的时间筛选有一定局限性,只能显示一定时间节点到当前时间这一段时间段内的筛选结果,做不到自由定义时间段筛选,本人找到了可以实现这一功能的插件,就是今天要介绍的DateRangeFilter. 注意: DateRangeFilter只适用于Django 1.4以上的版本. 插件安装 使用 pip或easy_install: pip install django-daterange-filter 修改
-
python如何遍历指定路径下所有文件(按按照时间区间检索)
需求 要求 查找文件夹里某个日期区间内的word文档,全部word的名称和路径列出来,比如 7月5号到7月31号 D盘下的所有word文档. 修改文件类型 修改文件路径 检索文件修改时间区间 #conding=utf8 import os import time g = os.walk(r"F:\学习资料\week_home") def judge_time_file(path, file, update_time): if not file.endswith(('.doc','.do
-
Java如何将若干时间区间进行合并的方法步骤
问题原因 工作中突然有个场景,需要合并时间区间.将若干闭合时间区间合并,实现思路如下: 1. 先对日期区间进行按时间顺序排序,这样后一个区间(记为next)的from一定是不小于前一个(记为prev)from的. 2.在进行循环比较的时候,对于next区间,假设next.from大于prev.to就说明这两个区间是分开的,要新增区间.否则说明next.from在[prev.from, prev.to]内,这时要看next.to是否是大于prev.to,如果大于就要合并区间. 具体实现 publi
随机推荐
- Java 8新的时间日期库的20个使用示例
- .NET截取指定长度汉字超出部分以"..."代替 实例分享
- PHP判断远程图片是否存在的几种方法
- 一些需要禁用的PHP危险函数(disable_functions)
- Python中的异常处理相关语句基础学习笔记
- C++ 自定义栈实现迷宫求解
- CMS不要让MySQL为你流泪
- 单独编译Android 源代码中的模块实现方法
- Mac OS X中设置VIM语法高亮的方法
- JS实现屏蔽shift,Ctrl,alt等功能键的方法
- 详解php中反射的应用
- Python程序中设置HTTP代理
- mysql5.7创建用户授权删除用户撤销授权
- 快速掌握Node.js事件驱动模型
- C++选择文件夹代码的封装
- python实现爬虫统计学校BBS男女比例之数据处理(三)
- C#将Json解析成DateTable的方法
- spring mvc 组合mybatis框架实例详解
- 详解React项目中碰到的IE问题
- Redis字符串对象实用笔记