PostgreSQL 语句记录

1、创建索引

-- 创建索引
CREATE SEQUENCE user_ID_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;

-- 应用索引
alter table user alter column id set default nextval('user_ID_seq');

2、生成连续日期

-- 生成连续日期
SELECT
	daytime::date date_time 
FROM
	generate_series ( ( SELECT ( now( ) + INTERVAL '-1 month' ) :: DATE ), ( SELECT now( ) :: DATE ), '1 day' ) AS daytime
order by date_time;

3、date_trunc() 函数,用于将时间戳或时间间隔截断为指定的精度级别

-- 获取上月月初日期
select date_trunc('month', now() + '-1 months')::date

-- 获取月初日期
select date_trunc('month', now())

-- 查询上个月数据
date >= date_trunc('month', now() + '-1 months')::date
date < date_trunc('month', now())::date

-- 每月1号 12点
select date_trunc('month',now()) +interval '12 h';

-- 每月15号9点半
select date_trunc('month',now()) + interval '15 d 9 h 30 min';

-- 每天9点	
select date_trunc('day',now()) + interval '9 h';

-- 每周的今天
select date_trunc('day',now()) + interval '7 d';

-- 每周的周二第一分钟
select date_trunc('weak',now())  + interval '1d 1minute';

-- 每小时
select date_trunc('h',now()) + interval '30 minute';

-- 每分钟
select date_trunc('minute',now()) + interval '30 second';

-- 每30分钟
select date_trunc('minute',now()) + interval '30 minute 30 second';

-- 本季度的第15天,15小时 15分 30秒
select date_trunc('quarter',now()) + interval '15 d 15 h 15 minute 30 second';

-- 每个季度最后一天的晚上11点
select date_trunc('quarter',now() ) - interval '1 h';

-- 每个季度的最后一天的晚上的11点(从下个季度开始算起)
select date_trunc('quarter',now() + interval '3 month') - interval '1 h';

4、生成连续日期及将指定类型进行组合,即同一个日期对应多个类型行

-- 将生成的连续日期和类型进行组合成一张表(方法:将日期和类型表进行合并为以逗号拼接成字符串,然后将字符串分割成多行)
SELECT
	dt.date_time,
	UNNEST ( string_to_array( dt."type", ',' ) ) "type"
FROM
	(
	SELECT
		to_char( daytime, 'yyyy-MM-dd' ) date_time,
		( SELECT string_agg ( "type", ',' ) FROM ( SELECT DISTINCT "type" FROM table_1 ) ty ) "type" 
	FROM
		generate_series ( ( SELECT ( now( ) + INTERVAL '-1 month' ) :: DATE ), ( SELECT now( ) :: DATE ), '1 day' ) AS daytime 
	ORDER BY
		date_time 
	) dt

5、

猜你喜欢

转载自blog.csdn.net/fengxing_2/article/details/127276557
今日推荐