在postgresql数据库中判断是否是数字和日期时间格式函数操作
在编写GreenPlum函数的过程中,遇到要判断字符串是否是数字和日期格式的情况,基于GreenPlum和postgresql的亲缘关系,找到了下面两个函数。
--1.判断字符串是否是数字
CREATE OR REPLACE FUNCTION isnumeric(txtStr VARCHAR) RETURNS BOOLEAN AS $$ BEGIN RETURN txtStr ~ '^([0-9]+[.]?[0-9]*|[.][0-9]+)$'; END; $$ LANGUAGE 'plpgsql';
--2.判断传入的字符串是否是日期格式
CREATE OR REPLACE FUNCTION isDate(dateStr VARCHAR) RETURNS BOOLEAN AS $$ BEGIN IF (dateStr IS NULL) THEN RETURN FALSE; END IF; PERFORM dateStr::timestamp; RETURN TRUE; EXCEPTION WHEN others THEN RETURN FALSE; END; $$ LANGUAGE 'plpgsql';
补充:Postgresql中时间戳与日期的相互转换(同样适用于GreenPlum)
我就废话不多说了,大家还是直接看代码吧~
--日期转时间戳 SELECT EXTRACT(epoch FROM NOW()); SELECT EXTRACT(epoch FROM CAST('2017-12-06 00:17:10' AS TIMESTAMP)); --时间戳转日期 SELECT TO_TIMESTAMP(1512490630)
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
Postgresql 通过出生日期获取年龄的操作
三个基础的时间表示函数 CURRENT_DATE/CURRENT_TIME/NOW() SELECT CURRENT_DATE ; 返回当前日期以 年-月-日(yyyy-MM-dd)的形式: 2019-01-10 SELECT CURRENT_TIME; 返回当日时间以 时:分:秒+时区(HH:mm:ss )的形式: 17:49:11.585308+08 SELECT NOW(); 返回当前时间 以 年-月-日 时:分:秒(yyyy-MM-dd HH:mm:ss)的形式: 2019-01-10
-
JDBC中使用Java8的日期LocalDate和LocalDateTime操作mysql、postgresql
前言 相信大家应该都知道,在实体Entity里面,可以使用java.sql.Date.java.sql.Timestamp.java.util.Date来映射到数据库的date.timestamp.datetime等字段 但是,java.sql.Date.java.sql.Timestamp.java.util.Date这些类都不好用,很多方法都过时了. Java8里面新出来了一些API,LocalDate.LocalTime.LocalDateTime 非常好用 如果想要在JDBC中,使用Ja
-
PostgreSQL 如何获取当前日期时间及注意事项
在开发数据库应用或者调试代码时,经常需要获取系统的当前日期和时间,我们来看一下 PostgreSQL 中提供的相关函数. 当前日期 CURRENT_DATE CURRENT_DATE 函数用于获取数据库服务器的当前日期: postgres=# SELECT CURRENT_DATE; current_date -------------- 2019-09-28 (1 row) 调用该函数时不需要在函数名后加括号.该日期是服务器的日期,不是客户端的日期. 当前事务开始时间 以下函数可以用于获取数据
-
在postgresql数据库中判断是否是数字和日期时间格式函数操作
在编写GreenPlum函数的过程中,遇到要判断字符串是否是数字和日期格式的情况,基于GreenPlum和postgresql的亲缘关系,找到了下面两个函数. --1.判断字符串是否是数字 CREATE OR REPLACE FUNCTION isnumeric(txtStr VARCHAR) RETURNS BOOLEAN AS $$ BEGIN RETURN txtStr ~ '^([0-9]+[.]?[0-9]*|[.][0-9]+)$'; END; $$ LANGUAGE 'plpgsq
-
在postgresql数据库中创建只读用户的操作
在pg数据库中创建只读用户可以采用如下方法.大体实现就是将特定schema的相关权限赋予只读用户. --创建用户 CREATE USER readonly WITH ENCRYPTED PASSWORD '123456'; --设置用户默认开启只读事务 ALTER USER readonly SET default_transaction_read_only = ON; --将schema中usage权限赋予给readonly用户,访问所有已存在的表 GRANT usage ON SCHEMA
-
PostgreSQL数据库中如何保证LIKE语句的效率(推荐)
在任何数据库中使用LIKE语句往往都是令人头疼的一件事,因为不少用户发现LIKE语句效率极低,查看执行计划后发现原来没有走索引,那么在Postgresql数据中LIKE语句的执行效率又是怎样的呢?我们又该如何提高LIKE语句的执行效率呢? 实验环境 数据库环境: PostgreSQL 12.3 X86_64 创建虚拟环境: postgres=# create database testdb01 owner highgo; CREATE DATABASE postgres=# \c test
-
MySQL数据库中varchar类型的数字比较大小的方法
创建测试表 -- ---------------------------- -- Table structure for check_test -- ---------------------------- DROP TABLE IF EXISTS `check_test`; CREATE TABLE `check_test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `current_price` varchar(10) NOT NULL, `price`
-
Postgresql数据库中的json类型字段使用示例详解
目录 1. Json概述 2. Postgresql数据库中使用Json类型字段 2.1. 创建表定义字段信息 2.2. 增加 2.3. 查询键值 2.3.1. 查询键 2.3.2. 查询值 2.3.3. where查询条件使用json键值作为条件 PostgreSQL 最重要的文档性数据类型就是JSON了,与 MongoDB 的BSON相比较,PostgreSQL 或许更加强大,因为它能与原有的关系性范式兼容,给数据库存储与维护带来了更多的可行性和便利性. 1. Json概述 JSON 代表
-
Spring Boot中是如何处理日期时间格式的
在springboot中开发RESTful接口,经常会遇到日期时间转换相关的问题,例如我们明明输入看起来很正常的日期时间字符串,但是系统却报错无法解析: JSON parse error: Cannot deserialize value of type java.time.OffsetDateTime from String "2020-06-06 14:26:31" 或者接口返回的日期时间字符串是一个很奇怪的字符串: 2020-06-04 14:41:54.767135400+08
-
Python 如何优雅的将数字转化为时间格式的方法
将数字转化成时间格式 from dateutil.parser import parse a=20170825 b=str(a) c=parse(b) print(c) 2017-08-25 00:00:00 将时间按照天排列,转化为一个数字,用来做时间序列分析 from matplotlib.pylab import date2num e = date2num(c) e Out[30]: 736566.0 将时间转化为时间戳 d=str(c) d Out[25]: '2017-08-25 00
-
ORACLE数据库中怎么求除数字、字母之外的非中文字符的正则表达式
最近做项目,有这样一需求:ORACLE数据库中求除数字.字母之外的非中文字符的正则表达式 如有如下字段,需将其中除字母.数字.汉字外的其他所有字符替换为空 'asdfsad ,,:)()!@123234#$%^&*(我w 是e ? 中国人../\[]::''""一人' 最终得到值:asdfsad123234我是中国人一人 select FN_REG_REPLACEOTHER('asdfsad ,,:)()!@#$%^&*(我是?中国人../\[]::''"&q
-
如何获取PostgreSQL数据库中的JSON值
在PostgreSQL数据库中有一列为JSON,要获取JSON中得数据可以用下面sql: select orderno as OrderNo ,amount as Amount ,ordertime as OrderTime , recordtype as RecordType from jsonb_to_recordset(( --特定方法 select array_to_json(array_agg(data)) --转换成一个数组 from wallet_details where id
-
Oracle数据库中的级联查询、级联删除、级联更新操作教程
级联查询 在ORACLE 数据库中有一种方法可以实现级联查询 select * //要查询的字段 from table //具有子接点ID与父接点ID的表 start with selfid=id //给定一个startid(字段名为子接点ID,及开始的ID号) connect by prior selfid=parentid //联接条件为子接点等于父接点,不能反 这个SQL主要用于菜单的级联查询,给一个父接点可以查出所有的子接点.及子接点的子接点,一查到底,很实用.不过呢这个程序只能在ora
随机推荐
- ASP.NET TreeView读取数据库实例
- 在Python中处理字符串之isdecimal()方法的使用
- jQuery select操作控制方法小结
- Asp.net中Request.Url的各个属性对应的意义介绍
- PHP中用mysqli面向对象打开连接关闭mysql数据库的方法
- PHP脚本数据库功能详解(下)
- python根据文件大小打log日志
- Python求导数的方法
- WPF仿三星手机充电界面实现代码
- Bootstrap框架安装使用详解
- js数字舍入误差以及解决方法(必看篇)
- 使用jquery 的ajax调用总是错误亲测的解决方法
- js结合json实现ajax简单实例
- c++中临时变量不能作为非const的引用参数的方法
- linux 网卡配置详解及实例
- jquery做的一个简单的屏幕锁定提示框
- js点击更换背景颜色或图片的实例代码
- 基于JavaScript实现仿京东图片轮播效果
- 实例解析Java设计模式编程中的适配器模式使用
- SQL查询中in和exists的区别分析