PostgreSql 统一修改date字段为timestamp

2023-09-22 15:26:48

        在《Powdersigner + PostgreSql 同步表结构到pg数据库》中,导入表结构到pg数据后,发下时间对不上了。mysql的datetime转换后pg的变成了date了。 再同步到数据后,就变成日期类型了。  因为表中基本都有创建时间和修改时间,两个相对固定的字段,因此想做一个统一的处理。

        把《postgreSql使用||拼接sql实现一次性修改库里面所有字段的属性_pg修改字段属性_友妖气的博客-CSDN博客》 和《Postgresql 如何查出一个表/所有表的所有列名_iteapoy的博客-CSDN博客》重新做一个梳理

        《Postgresql学习文档

1,查出当前库里面的表格字段:

 -- 所有表字段
select * from information_schema.columns;

-- 只查公共的表字段
select * from information_schema.columns 
where table_schema='public' and table_name<>'pg_stat_statements';

2,根据类型过滤字段:

select * from information_schema.columns 
where table_schema='public' and table_name<>'pg_stat_statements' 
and data_type = 'date';

3,pg修改字段类型:

ALTER TABLE table_name ALTER COLUMN column_name DATA TYPE datatype;

4,拼接要修改表名和字段

SELECT 'ALTER table '||table_name||' alter COLUMN '|| column_name ||
' SET DATA TYPE timestamp ;' FROM information_schema.columns
where table_schema='public' and table_name<>'pg_stat_statements' 
 and data_type = 'date' 
  order by table_name ;

执行后,得到修改类型的语句,可以导出来,再执行。 

5,再拼接到一起array_to_string

不导出来的话,可以再拼接,

 select array_to_string(array_agg(sqls), ' ') from (
  SELECT 'ALTER table '||table_name||' alter COLUMN '||column_name||
' SET DATA TYPE timestamp ;' as sqls
  FROM information_schema.columns
  where table_schema='public' 
  and table_name<>'pg_stat_statements' 
  and data_type = 'date' 
  order by table_name 
 ) as temp;

再把内容复制出来,格式化下,再执行。

注意:

        如果时间是有用date类型的,再根据字段名称进行一个过滤,特殊话处理!

总结:

        如果有碰到需要统一修改固定表字段类型的,可以用这样的方法去处理,比较省事。

更多推荐

Win32 位图直接绘制

CBitmapDraw.h#pragmaonce#include<wtypes.h>#include<type_traits>#defineCOLOR_RGB_TO_BGR(_rgb)((_rgb&0xFF)<<16)|(_rgb&0x00FF00)|((_rgb>>16)&0xFF)typedefstruct_BIT

易点易动库存管理系统:引领库存用量控制新时代,助力企业节约成本

在现代企业经营中,库存管理一直是一个关键的环节。过多的库存会造成资金占用和浪费,而过少的库存则容易导致生产中断和客户满意度下降。为了解决这一难题,易点易动库存管理系统应运而生。一、全面的库存数据管理易点易动库存管理系统通过与企业的仓储系统实时对接,实现了对库存数据的全面管理。无论是原材料、半成品还是成品,系统都能准确记

什么是Vue的Vetur插件?它有哪些功能

引言在现代前端开发中,Vue.js已经成为了一个备受欢迎的JavaScript框架。随着Vue.js的流行,开发人员需要强大的工具来提高他们的生产力和Vue.js项目的质量。Vetur插件是一个为Vue.js开发者提供的强大工具,它不仅提供了丰富的功能,还能让你更轻松地编写和维护Vue.js应用程序。本文将深入探讨Ve

007-第一代软件需求整理

第一代软件需求整理文章目录第一代软件需求整理项目介绍需求来源需求来源1:竞品软件分析需求来源2:医生(市场)需求来源3:项目组内部需求来源4:软件组内部需求来源5:软件开发成员需求来源6:法律和法规总结一下关键字:Qt、Qml、需求、类型、采集项目介绍欢迎来到我们的QML&C++项目!这个项目结合了QML(QtMeta

Unity shader内置standard代码解析

最近有相关需求制作,所以这里编写一个文档,方便后续的流程查看。下载源码由于unity内置的shader是无法查看源码的,你需要去官网下载对应版本内置源码查看在引擎下载那里,会有一个BuiltinShaders,下载打开以后,就是对应的shader内置的shandard在DefaultResourcesExtra目录内,

更快,更稳,更智能,科聪穿梭车(RGV)快速构建方案!

随着自动化物流发展,密集存储得到越来越广泛地应用,已经是现代物流的重要组成部分之一。作为密集存储系统中关键设备之一,穿梭车(RGV)越来越受到大家的重视。穿梭车(RGV)是一种智能机器人,可以编程实现取货、运送、放置等任务,并可与上位机、调度系统或WMS系统进行通讯,结合RFID、条码等识别技术,实现自动化识别、存取等

Git:Git的一些基本操作

文章目录基本认识使用方法创建本地仓库配置本地仓库工作区、暂存区、版本库的概念添加文件版本回退撤销修改删除操作基本认识首先要对Git有一个基本的认知:Git本质上是一个版本控制器,可以对一个信息的多个版本进行一些控制,而能对版本的控制的好处就是,不管需要哪个版本的内容,都可以借助Git这个工具找到所需要的信息Git是一个

API接口在电商商品数据获取中的应用

一、引言在当前的数字化时代,电子商务平台已经成为了人们购物的主要场所之一。许多电商平台都提供了API接口,以便开发者可以获取商品数据并进行创新应用。本文将深入探讨如何使用API接口获取商品数据,以及如何将这些数据应用到电商领域中。二、API接口概述1.API接口定义API(ApplicationProgrammingI

Java-List<Map>的复制 深拷贝与浅拷贝

博客背景是Java开发。讲一讲List<Map>的复制中深拷贝与浅拷贝。文章目录1、浅拷贝1.1循环遍历复制1.2使用list实现类的构造方法1.3addAll方法2、深拷贝深拷贝工具类SerializationUtils.clone1、浅拷贝Map除了基本类型是值传递,其余的都是引用地址传递。由于map的value存

MySql(随记)

一条MySql执行过程首先Mysql的架构分为两层,Server层和存储引擎层。Server层:MySql大多数核心功能,主要包括,连接器,查询缓存,解释器,预处理器,优化器,执行器等存储引擎层:负责数据的获取和存储。(innodb,MyISAM)连接器1.首先经过TCP三次握手,随后进行权限验证,若有问题则返回“Ac

UI美工设计岗位的基本职责概述(合集)

UI美工设计岗位的基本职责概述11、有良好的美术功底、设计新颖,整体配色及设计创意理念,能够独立完成整个网站页面设计及制作;2、熟练运用DIV+CSS,HTML设计制作网页;3、熟练运用Photoshop,Dreamweaver,Coreldraw(或Illustrator),Flash,Fireworks等软件。4、

热文推荐