PostgreSQL 日期函数的使用笔记

原创
2018/12/26 19:55
阅读数 140

由于工作需要,今天使用了PostgreSQL中的日期函数.在这里总结一下.

变量介绍

和时间相关的PostgreSQL中支持的类型:

类型名称 备注 示例
TIMESTAMP 8个字节,可以有时区也可以没有,包含日期和时间 '2018-12-26 17:00:00'
DATE 4个字节,只有日期没有时间 '2018-01-01'
INTERVAL 时间间隔 16字节 '3 day'
TIME 单指时间,可以有时区也可以不加,没有时区的为12字节长度,包含时区则是16字节 '10:00:12'

在语句中经常用到的一个强制类型转换的函数.这个强制类型转换不一定是必须的,有时候还会导致报错,但如果你不确定你的字符串到底是什么类型的话最好还是加上这个吧.

函数名 功能
::type 强制类型转换

在PostgreSQL中可以直接对时间进行加减运算: 支持的运算符:('+','-','*','/')

SELECT NOW()::TIMESTAMP + '1 year'::INTERVAL;	-- 当前时间加1年
SELECT NOW()::TIMESTAMP + '1 month'::INTERVAL;	-- 当前时间加一个月
SELECT NOW()::TIMESTAMP + '1 day'::INTERVAL; 	-- 当前时间加一天
SELECT NOW()::TIMESTAMP + '1 hour'::INTERVAL;	-- 当前时间加一个小时
SELECT NOW()::TIMESTAMP + '1 min'::INTERVAL;	-- 当前时间加一分钟
SELECT NOW()::TIMESTAMP + '1 sec'::INTERVAL;	-- 加一秒钟
SELECT NOW()::TIMESTAMP + '1 year 1 month 1 day 1 hour 1 min 1 sec'::INTERVAL;	-- 加1年1月1天1时1分1秒
SELECT NOW()::TIMESTAMP + (col || ' day')::INTERVAL FROM table;		-- 把col字段转换成天 然后相加

-- 日期可以直接和一个整数相加

SELECT '2018-04-10'::DATE + '7'::INTEGER;
RESULT:2018-04-17
SELECT '2018-04-10'::DATE + 7;
RESULT:2018-04-17
SELECT '2018-04-10'::DATE + '7'::INTEGER;
RESULT:2018-04-17

-- 日期与时间间隔(INTERVAL)的运算:

SELECT '2015-04-10'::DATE + '3 YEARS'::INTERVAL;
SELECT '2015-04-10'::DATE + '3 MONTHS'::INTERVAL;
SELECT '2015-04-10'::DATE + '3 DAYS'::INTERVAL;
SELECT '2015-04-10'::DATE + '3 HOURS'::INTERVAL;
SELECT '2015-04-10'::DATE + '3 MINUTES'::INTERVAL;
SELECT '2015-04-10'::DATE - '3 SECONDS'::INTERVAL;

PostgreSQL在字符串的表示中不能使用双引号来表示,而是使用单引号来表示字符串常量,双引号可以用来表示加在字段名称和数据库及数据表名称上.这点与MySQL不同,需要稍微花点时间去适应.

参考链接:PostgreSql函数和操作符一之时间运算

参考链接:PostgreSQL日期加减

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部