postgresql数据库使用说明_实现时间范围查询

按照日期查询通常有好几种方法:

按照日期范围查询有好几种方法,日期字段类型一般为:

Timestamp without timezone

方法一:

select * from user_info where create_date
>= '2015-07-01' and create_date < '2015-08-15';

方法二:

select * from user_info where create_date
between '2015-07-01' and '2015-08-15';

方法三:

select * from user_info where create_date
>= '2015-07-01'::timestamp and create_date < '2015-08-15'::timestamp;

方法四:


select * from user_info where create_date
between to_date('2015-07-01','YYYY-MM-DD') and to_date('2015-08-15','YYYY-MM-DD');

pandas.to_sql 遇到主键重复的,怎么能够跳过继续执行呢,其实很简单,就一条一条的插入就可以了,因为to_sql还没有很好的解决办法。

具体的代码如下所示:

  for exchange in exchange_list.items():
    if exchange[1]==True:
      pass
    else:
      continue
    sql = """ SELECT * FROM %s WHERE "time" BETWEEN '2019-07-05 18:48' AND '2019-07-09' """ % (exchange[0])
    data = pd.read_sql(sql=sql, con=conn)
    print(data.head())
    for i in range(len(data)):
      #sql = "SELECT * FROM `%s` WHERE `key` = '{}'"%(exchange).format(row.Key)
      #found = pd.read_sql(sql, con=conn2)
      #if len(found) == 0:
      try:
        data.iloc[i:i + 1].to_sql(name=exchange[0], index=False,if_exists='append', con=conn2)
      except Exception as e:
        print(e)
        pass

pandas.to_sql 无法设置主键,这个是肯定的,能做的办法就是在to_sql之前先使用创建表的方法,创建一张表

建表的代码如下所示:

/*
Create SEQUENCE for table
*/
DROP SEQUENCE IF EXISTS @exchangeName_id_seq;
CREATE SEQUENCE @exchangeName_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;

/*
Create Table structure for table
*/
DROP TABLE IF EXISTS "public"."@exchangeName";
CREATE TABLE "public"."@exchangeName" (
 "id" int4 NOT NULL DEFAULT nextval('@exchangeName_id_seq'::regclass),
 "time" timestamp(6) NOT NULL,
 "open" float8,
 "high" float8,
 "low" float8,
 "close" float8,
 "volume" float8,
 "info" varchar COLLATE "pg_catalog"."default" NOT NULL
)
;

/*
Create Primary Key structure for table
*/
ALTER TABLE "public"."@exchangeName" DROP CONSTRAINT IF EXISTS "@exchangeName_pkey";
ALTER TABLE "public"."@exchangeName" ADD CONSTRAINT "@exchangeName_pkey" PRIMARY KEY ("time", "info");
 

补充:postgresql 数据库时间间隔数据查询

当前时间向前推一天:

SELECT current_timestamp - interval '1 day'

当前时间向前推一个月:

SELECT current_timestamp - interval '1 month'

当前时间向前推一年:

SELECT current_timestamp - interval '1 year'

当前时间向前推一小时:

SELECT current_timestamp - interval '1 hour'

当前时间向前推一分钟:

SELECT current_timestamp - interval '1 min'

当前时间向前推60秒:

SELECT current_timestamp - interval '60 second'

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • 浅谈PostgreSQL中大小写不敏感问题

    本文主要讨论PostgreSQL中大小写不敏感存在的问题. 默认情况下,PostgreSQL会将列名和表名全部转换为小写状态. 图1 Person与person 如图1所示,我们创建表person,其中包含name列.然后插入一条记录.执行SELECT查询时,使用列名Name和表名Person而不是name和person,发现仍然可以正常获取刚刚插入表person中的记录. 图2 创建表Person? 此时如果我们再想创建表Person,会得到一个错误,因为此时PostgreSQL实际上把表名从

  • Postgresql 数据库转义字符操作

    产生问题 Postgresql数据库运行下面insert命令 insert into mapping_mac_brand(_id,mac,brand) values(777,'D86595','Toy\'s Myth Inc.') 提示下面的警告: Warning: nonstandard use of \' in a string literal HINT: Use '' to write quotes in strings or use the escape string syntax(E.

  • 基于PostgreSql 别名区分大小写的问题

    PostgreSql是区分大小写的 如果别名的大小不一致就会提示错误: SELECT * FROM ( SELECT cpi."product_item_id" "PRODUCT_ITEM_ID" FROM prd.up_product_item cpi ) a WHERE a.PRODUCT_ITEM_ID=1 一个很简单的子查询,但是会出错,虽然从语句上看大小写是一致的,但是内部查询中还是使用了小写.PostgreSql对于大写都需要加上双引号的,不然还是视作小

  • postgresql~*符号的含义及用法说明

    操作符 ~~ 等效于 LIKE, 而 ~~* 对应 ILIKE. 还有 !~~ 和 !~~* 操作符 分别代表 NOT LIKE 和 NOT ILIKE. 另外: ~ 匹配正则表达式,大小写相关 'thomas' ~ '.*thomas.*' ~*搜索 匹配正则表达式,大小写无关 'thomas' ~* '.*Thomas.*' !~ 不匹配正则表达式,大小写相关 'thomas' !~ '.*Thomas.*' !~* 不匹配正则表达式,大小写无关 'thomas' !~* '.*vadim.

  • PostgreSQL LIKE 大小写实例

    PostgreSQL 数据库 函数upper("字符串"):转成大写字符串 WHERE UPPER("User_Name") LIKE upper(username) 此句查询"User_Name" 中值大小写不区分. SELECT "User_Id","User_Image","User_Name","User_Birthday","User_Sex&qu

  • postgresql 实现将数组变为行

    有的时候需要把数组元素同表中的字段进行关系运算,首先得把array变为记录行 SELECT "unnest"(array[1,2,3]) 结果: unnest 求数组交集: SELECT "unnest"(array[1,2,3]) INTERSECT SELECT "unnest"(array[3,4,5]) 结果: unnest 3 补充:PostgreSQL单列多行变一行&一行变多行 工作中经常遇到这样一个场景,希望将某个字断查询出

  • postgresql数据库使用说明_实现时间范围查询

    按照日期查询通常有好几种方法: 按照日期范围查询有好几种方法,日期字段类型一般为: Timestamp without timezone 方法一: select * from user_info where create_date >= '2015-07-01' and create_date < '2015-08-15'; 方法二: select * from user_info where create_date between '2015-07-01' and '2015-08-15';

  • 浅析postgresql 数据库 TimescaleDB 修改分区时间范围

    今天遇到一个问题 之前用TimescaleDB创建的超表 是已7天为单位的 由于7天的数据量过大 影响查询效率 需要把7天的分区改为一天一分区 创建超表 create_hypertable() 1.创建普通版表 CREATE TABLE "超表名" ( "collect_time" timestamp(6) NOT NULL, "code" varchar(36) COLLATE "pg_catalog"."defa

  • postgreSQL数据库的监控及数据维护操作

    目前postgreSQL数据库的管理,数据查询等都需要安装postgreSQL软件或安装pgadmin等,远程访问都需要先登录到服务器等繁琐的操作.如果是开发团队,那么每个开发,测试,管理人员都要经历这个麻烦的过程. 使用Treesoft数据库管理系统,基于web方式管理postgreSQL,只需安装一次,大家直接通过浏览器使用,维护及监控数据库,大大简化工作量. 监控的指标包括:连接数,数据库大小,表空间,锁情况,QPS事务数等. Treesoft数据库管理系统,支持直接网络在线维护数据,数据

  • django 按时间范围查询数据库实例代码

    从前台中获得时间范围,在django后台处理request中数据,完成format,按照范围调用函数查询数据库. 介绍一个简单的功能,就是从web表单里获取用户指定的时间范围,然后在数据库中查询此时间范围内的数据. 数据库里的model举例是这样: class book(models.Model): name = models.CharField(max_length=50, unique=True) date = models.DateTimeField() def __unicode__(s

  • PostgreSQL数据库视图及子查询使用操作

    目录 视图 创建视图 使用视图 视图更新: 删除视图: 子查询 关联子查询 视图 表里面保存的是实际数据,视图里面保存的是SELECT语句(视图本身不存储数据). 从视图中读取数据,此时视图在内部执行SELECT语句,创建一张临时表. 使用视图的好处:其一,视图不保存数据,节省存储设备容量.其二,将频繁使用的SELECT语句保存成视图,每次使用这些语句时候,不用重复书写,只需调用视图.其三,数据保存到表中,要显式的执行SQL更新语句才能更新数据,而视图中的数据会随着原表的变化自动更新. 创建视图

  • PostgreSQL数据库的基本查询操作

    目录 查询列 去除重复数据DISTINCT WHERE子句 注释 算术运算符 比较运算符 逻辑运算符 查询列 SELECT语句,用于从表中选取数据.格式: SELECT <列名>,... FROM <表名>; 从Product表中,查询三列. SELECT product_id, product_name, purchase_price FROM Product; 查询所有列,格式: SELECT *FROM <表名>; 星号代表全部列. SELECT *FROM Pr

  • 如何将postgresql数据库表内数据导出为excel格式(推荐)

    在上篇文章给大家介绍了如何将postgresql数据库表内数据导出为excel格式(推荐) 感兴趣的朋友点击查看. 本文主要用于介绍如何使用copy或者\copy命令将postgresql数据库内表的数据导出为excel格式,方便用户查看编辑. copy命令同\copy命令语法上相同,区别在于copy必须使用能够超级用户使用,copy - to file 中的文件都是数据库服务器所在的服务器上的文件,而\copy 一般用户即可执行且\copy 保存或者读取的文件是在客户端所在的服务器.本文主要以

  • Rust 连接 PostgreSQL 数据库的详细过程

    pgxr 是一个 Rust 的 crate 库,可以实现用 Rust 语言来编写 PostgreSQL 的扩展函数(相当于存储过程). 这次,我们使用 postgres 这个 crate 来连接和操作 PostgreSQL 数据库. 创建好项目后,在 cargo.toml 里添加 postgres 的依赖: 首先,导入相关的类型,并创建一个 Person struct: 再创建 create_db 函数,用来创建数据库和表,它返回一个 Result,里面可能是 Client 或错误: 注意,Cl

  • Golang连接并操作PostgreSQL数据库基本操作

    目录 前言: 连接数据库 sql.DB 增删改查 插入数据 更新数据 查询数据 删除数据 总结 前言: 本篇文章对如何使用golang连接并操作postgre数据库进行了简要说明.文中使用到的主要工具:DBeaver21.VSCode,Golang1.17. 以用户,文章,评论三个表作为例子,下面是数据库建表sql: CREATE TABLE public.user_info ( u_id serial4 NOT NULL, user_name varchar NULL, create_time

  • 15个postgresql数据库实用命令分享

    最初是想找postgresql数据库占用空间命令发现的这篇blog,发现其中提供的几 条命令很有用(但也有几条感觉是充数的=.=),于是就把它翻译过来了.另外这篇文章是09年的,所以里面的内容可能有点过时,我收集了原文中有用的评论放在了最后面. 现在有不少开源软件都在使用postgreSQL作为它们的数据库系统.但公司可能不会招一些全职的postgreSQL DBA来维护它(piglei: 在国内基本也找不到).而会让一些比如说Oracle DBA.Linux系统管理员或者程序员去 维护.在这篇

随机推荐