postgresql中日期本月、本周、本季度、昨天、近几个月等

您所在的位置:网站首页 sql获取上个月的数据 postgresql中日期本月、本周、本季度、昨天、近几个月等

postgresql中日期本月、本周、本季度、昨天、近几个月等

2024-06-02 07:39:29| 来源: 网络整理| 查看: 265

一、本月第一天

在报表抽取时,常常需要获取本月第一天。然后作为报表抽取的查询条件。第一天常常有两种格式,一种是日期,另外一种是时间戳。

-- 本月。如2019-02 SELECT to_char(now(),'YYYY-MM') -- 本月第一天,日期格式 。 例如 2019-02-01 SELECT to_char(now(),'YYYY-MM-01') -- 本月第一天。时间戳格式。 例如 2019-02-01 00:00:00 SELECT to_char(now(),'YYYY-MM-01 00:00:00')

还可以使用 date_trunc() 函数

-- 本月第一天: 2019-02-01 00:00:00+08 select date_trunc('month',now()) -- 本月第一天12点 : 2019-02-01 12:00:00+08 select date_trunc('month',now()) +interval '12 h'; 二、 下月第一天或者上月第一天

报表抽取时,抽取上月数据的情况也是很常见。时间小于下月第一天,可以做为这个月结束。或者两个时间点/日期 有必要。

-- 时间戳下个月开始 2019-03-01 00:00:00+08 SELECT to_timestamp((to_char(( now() + interval '1 month'),'YYYY-MM-01')),'YYYY-MM-DD 00:00:00') -- 时间戳:上个月开始 2019-01-01 00:00:00+08 SELECT to_timestamp((to_char(( now() + interval '-1 month'),'YYYY-MM-01')),'YYYY-MM-DD 00:00:00') -- 日期:下个月第一天 2019-03-01 SELECT to_date((to_char(( now() + interval '1 month'),'YYYY-MM-01')),'YYYY-MM-DD') -- 日期:上个月第一天 2019-01-01 SELECT to_date((to_char(( now() + interval '-1 month'),'YYYY-MM-01')),'YYYY-MM-DD') 三、上一季度、本季度、下一季度 -- 上一季度第一天:2018-10-01 00:00:00+08 select date_trunc('quarter',now() + interval '-3 month') -- 本季度第一天: 2019-01-01 00:00:00+08 select date_trunc('quarter',now()) -- 下一季度第一天:2019-04-01 00:00:00+08 select date_trunc('quarter',now() + interval '3 month') 四、 日期序列。

生成2019-01-01 ~2019-01-31 的日期序列

-- 生成时间戳的格式 SELECT * FROM generate_series('2019-01-01'::DATE,'2019-01-31'::DATE,'1 DAY'); -- 生成日期的格式 SELECT date(d) FROM generate_series('2019-01-01'::DATE,'2019-01-31'::DATE,'1 DAY') AS _date(d);

generate_series(start,stop,step) – 开始、结束、步长。

五、 提取日期字段的年、月、日 -- 提取日期字段的年、月、日 -- 年 2019 SELECT EXTRACT(YEAR FROM now()) -- 月 2 SELECT EXTRACT(MONTH FROM now()) -- 日 26 SELECT EXTRACT(DAY FROM now()) 六、 今天是星期几 -- 今天星期:2 select CASE WHEN extract(DOW FROM now()) = 0 THEN 7 else extract(DOW FROM now()) END AS "星期" -- 扩展,如果周一到周六为工作日,周日为休息日。 select CASE WHEN EXTRACT (DOW FROM now()) = 0 THEN '0' ELSE '1' END AS isworkdate 七、获取本年的数据 # 获取今年 select to_char((SELECT now() as timestamp),'yyyy'); select date_trunc( 'year', now() ); # 获取去年 select to_char((select now() - interval '1 years'),'yyyy') 八、获取当前系统时间 select now(); select current_timestamp; 结果:2020-11-04 16:09:53.247825+08 # now()/current_timestamp展示当前系统的时间,日期格式 九、获取当前日期或时间 select current_date; 结果:2020-11-04 select current_time; 结果:16:14:08.501182+08 十、查询昨天的数据 select DISTINCT count(id) from tablexx where coalesce(l.join_date,l.sys_createdate) >= current_date - 1; # 这里的coalesce函数,语法:coalesce(expr1,expr2,expr3...) # 如果第一个字段存在就用第一个进行表达式判断; # 如果第一个不存在为null则用第二个进行表达式判断; # 如果都没有null则返回null 十一、查询本周的数据 # 查询某个时间的周一 SELECT ( DATE '2020-10-23' - INTERVAL '1 day' - ( EXTRACT ( dow FROM ( DATE'2020-10-23' - INTERVAL '1 day' ) ) - 1 || ' day' ) :: INTERVAL ) :: DATE; # 减1 是因为得到的是以周一是星期的开始 # 查询本周的数据 SELECT( DATE ( now() ) - ( EXTRACT ( dow FROM DATE ( now() ) ) - 1 || ' day' ) :: INTERVAL ) :: DATE startasy, ( DATE ( now() ) - ( EXTRACT ( dow FROM DATE ( now() ) ) - 1 || ' day' ) :: INTERVAL ) :: DATE + 6 endday from table d LIMIT 5; # 本周周末 SELECT to_char(CURRENT_DATE +cast(-1*(TO_NUMBER(to_char(CURRENT_DATE,'D'),'99')-2)+6 ||' days' as interval),'yyyy-mm-dd'); #本周第一天 select date_trunc('week',now()); 十二、近十二个月数据

WHERE request_date > (current_date - INTERVAL '12 months');

select date_trunc('month',current_date - INTERVAL '12 months')

十三、去年同期

select date_trunc('day',now() - INTERVAL '1 years') 

参考

关于date_trunc() 函数,参考这篇文章PostgreSQL date_trunc() 截断日期函数,完成定时时间语法.

日期函数 PostgreSQL: Documentation: 9.2: Date/Time Functions and Operators



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭