PostgreSQL数据库中的数据类型转换
PostgreSQL的数据类型转换(格式化)函数提供了一套非常有效的工具,用于各种数据类型之间的相互转换,可以将日期/时间,integer,floating point,numeric 转换成格式化的字符串以及反过来从格式化的字符串转换成指定的数据类型。但一般最常用的是一下两类:(1)将特定数据类型转换为字符串,因为在程序开发工程中处理的数据是以字符串为主的;(2)i数字(int)转换为字符串。
下面是常用的数据转换函数( 第一个参数是待格式化的值,而第二个是一个定义输出或输出格式的模板):
函数 | 返回类型 | 描述 | 例子 |
---|---|---|---|
to_char(timestamp, text) | text | 把时间戳转换成字串 | to_char(current_timestamp, 'HH12:MI:SS') |
to_char(interval, text) | text | 把时间间隔转为字串 | to_char(interval '15h 2m 12s', 'HH24:MI:SS') |
to_char(int, text) | text | 把整数转换成字串 | to_char(125, '999') |
to_char(double precision, text) | text | 把实数/双精度数转换成字串 | to_char(125.8::real, '999D9') |
to_char(numeric, text) | text | 把 numeric 转换成字串 | to_char(-125.8, '999D99S') |
to_date(text, text) | date | 把字串转换成日期 | to_date('05 Dec 2000', 'DD Mon YYYY') |
to_timestamp(text, text) | timestamp with time zone | 把字串转换成时间戳 | to_timestamp('05 Dec 2000', 'DD Mon YYYY') |
to_timestamp(double precision) | timestamp with time zone | 把 UNIX 纪元转换成时间戳 | to_timestamp(200120400) |
to_number(text, text) | numeric | 把字串转换成 numeric | to_number('12,454.8-', '99G999D9S') |
上面例子中的第二个参数是要求转换成什么样的格式。对于时间日期和数字都具有不同的模式,下面是常用的模式:
模式 | 描述 |
---|---|
9 | 带有指定数值位数的值 |
0 | 带前导零的值 |
. (句点) | 小数点 |
, (逗号) | 分组(千)分隔符 |
PR | 尖括号内负值 |
S | 带符号的数值(使用区域设置) |
L | 货币符号(使用区域设置) |
D | 小数点(使用区域设置) |
G | 分组分隔符(使用区域设置) |
MI | 在指明的位置的负号(如果数字 < 0) |
PL | 在指明的位置的正号(如果数字 > 0) |
SG | 在指明的位置的正/负号 |
RN | 罗马数字(输入在 1 和 3999 之间) |
FM |
填充模式(抑制填充空白和零)
|
具体示例如下:
表达式 | 结果 |
---|---|
to_char(current_timestamp, 'Day, DD HH12:MI:SS') | 'Tuesday , 06 05:39:18' |
to_char(current_timestamp, 'FMDay, FMDD HH12:MI:SS') | 'Tuesday, 6 05:39:18' |
to_char(-0.1, '99.99') | ' -.10' |
to_char(-0.1, 'FM9.99') | '-.1' |
to_char(0.1, '0.9') | ' 0.1' |
to_char(12, '9990999.9') | ' 0012.0' |
to_char(12, 'FM9990999.9') | '0012.' |
to_char(485, '999') | ' 485' |
to_char(-485, '999') | '-485' |
to_char(485,'9 9 9') | ' 4 8 5' |
to_char(1485, '9,999') | ' 1,485' |
to_char(1485, '9G999') | ' 1 485' |
to_char(148.5, '999.999') | ' 148.500' |
to_char(148.5, 'FM999.999') | '148.5' |
to_char(148.5, 'FM999.990') | '148.500' |
to_char(148.5, '999D999') | ' 148,500' |
to_char(3148.5, '9G999D999') | ' 3 148,500' |
to_char(-485, '999S') | '485-' |
to_char(-485, '999MI') | '485-' |
to_char(485, '999MI') | '485 ' |
to_char(485, 'FM999MI') | '485' |
to_char(485, 'PL999') | '+485' |
to_char(485, 'SG999') | '+485' |
to_char(-485, 'SG999') | '-485' |
to_char(-485, '9SG99') | '4-85' |
to_char(-485, '999PR') | '<485>' |
to_char(485, 'L999') | 'DM 485 |
to_char(485, 'RN') | ' CDLXXXV' |
to_char(485, 'FMRN') | 'CDLXXXV' |
to_char(5.2, 'FMRN') | 'V' |
to_char(482, '999th') | ' 482nd' |
to_char(485, '"Good number:"999') | 'Good number: 485' |
to_char(485.8, '"Pre:"999" Post:" .999') | 'Pre: 485 Post: .800' |
to_char(12, '99V999') | ' 12000' |
to_char(12.4, '99V999') | ' 12400' |
to_char(12.45, '99V9') | ' 125' |
PostgreSQL数据库中的数据类型转换相关推荐
- 以使用QSqlQuery向数据库中插入数据为例,做一个小结
背景: 最近在使用Qt+SQLite写一个本地数据库管理程序(使用者不懂SQL),在写向数据库中插入数据的 相关的函数时,我遇到了几个问题(暂时就这些): 1.向指定字段插入指定数据时,读取到的数据都 ...
- 详解PostgreSQL数据库中的两阶段锁
点击上方"蓝字" 关注我们,享更多干货! 数据库中的对象是共享的,假如不同的用户同时修改某个对象,就会出现数据错乱,从而破坏数据库的数据一致性,违反事务的隔离性原则. 为了满足隔离 ...
- PostgreSQL数据库导入EXCEL数据表
气象监测数据下载(可下载最新及每日气象数据) NOAA气象日监测数据均值计算python代码整理 PostgreSQL数据库导入EXCEL数据表 PG数据库版本为10.14.1. 首先,需要在PG数据 ...
- PostgreSQL 数据库中 DISTINCT 关键字的 4 种用法
文章目录 DISTINCT DISTINCT ON IS DISTINCT FROM 聚合函数与 DISTINCT 大家好,我是只谈技术不剪发的 Tony 老师.PostgreSQL 不但高度兼容 S ...
- 【PostgreSQL与UDIG】Udig导入Postgresql数据库中矢量数据无法显示的问题
Udig导入Postgresql数据库中矢量数据无法显示的问题 编程小白,记录学习中遇到的问题,希望可以帮助到其他的人. 一.问题描述 -----首先利用PostGIS将矢量数据导入postgreSQ ...
- postgresql数据库中使用使用UUID
目录 问题现象: 问题分析: 解决方法: 问题现象: 今天在项目学习中,需要给数据添加一个id,组长要求使用UUID. 问题分析: 由于我们的项目中使用的是postgresql数据库,那么如果在pos ...
- PostgreSQL数据库中的角色(Role)、用户(User)、模式(Schema)
文章目录 PostgreSQL数据库中的角色(Role).用户(User).模式(Schema) 角色(Role)和用户(User) 角色操作 CREATE ROLE 创建角色 ALTER ROLE修 ...
- 用java向mysql数据库中插入数据为空
利用java面向对像编程,向数据库中插入数据时.遇到插入的数据为空的情况.在此做一小结: 1.数据库连接正正常 2.sql语句没有问题 3.程序没有报异常 4.代码: import java.util ...
- android studio数据库存储数据,如何使用API 23在android studio中的数据库中存储数据?...
大多数时候我不会发布任何内容,因为我可以在其他帖子中找到我需要的所有内容,但是现在我已经有几天了,您如何在数据库中存储任何内容?这是我的Java代码如何使用API 23在android studi ...
最新文章
- python模块之imghdr检测图片类型
- the cdb terminated,Qt调试器问题
- 对象级别锁 vs 类级别锁 – Java
- 通过蜜罐技术获取攻击者手机号、微信号【网络安全】
- php 正则表达式 后向引用,php正则表达式 后向引用~ | 学步园
- Android studio的布局总结
- 数组,三种初始化和内存分析
- 一个自动上传ip到ftp服务器的bat脚本
- Picnic Planning
- 百会云办公:国内首家微信办公一站式解决方案
- 《自卑与超越》读书笔记优秀范文3200字
- MCS-51单片机的内部结构
- Photoshop如何自定义形状
- USB无线网卡配置ICS失败,你可以连接到SoftAP,但可能无法使用internet服务
- XP IIS5.1安装文件
- 拨号时显示无法连接服务器失败,拨号网络常见的错误提示解释及解决方法大全...
- 电机调速程序c语言,步进电机调速控制系统设计C语言程序及说明.doc
- 国开题库c语言,C语言-程序设计-阅读程序题库.资料大全及其答案.doc
- 5.Unity2D 横版 对象池的创建
- Mysql实现数据脱敏
热门文章
- 【2017.05】技术员GHOST系统最新发布(32位/64位)
- 智慧警务大数据分析平台开发动态重点人员管控平台开发
- 2021青龙一中高考成绩查询,2021年河北省秦皇岛市青龙一中高考地理质检试卷.docx...
- 解决ubuntu16.04 USB鼠标键盘使用卡顿
- ELK搭建教程(全过程)
- tomcat绑定域名
- 软件测试作业垃圾分类系统,垃圾分类最强小测试,看看你能得几分?
- 根据时间戳计算宝宝年龄(年月日)
- 大型手游登录流程详解
- VS Code下GO语言环境搭建