postgreSQL / MySQL / 达梦 时间查询 ,获取近几天、一周、一月、季度、一年时间内的数据

一、日期查询

1、单个日期查询:

to_date('时间字段','yyyy-mm-dd') = '2021-10-26'
//今日
to_date('时间字段','yyyy-mm-dd') = current_date


curdate()  // '2020-11-11' , 
now()    //  '2020-11-11 11:11:11' ,
CURTIME() //  '11:11:11',
current_date // '2020-11-11' 

三个数据库时间转换使用函数:

//MySQL:
convert(Date,'转换为的数据类型') //Date可为输入时间
//或
date_format('转换值','%Y-%m-%d %H:%i:%s') //Date可为输入时间

//达梦:
to_char(Date,'YYYY-MM-DD HH24:MI:SS') //Date可为输入时间
//或
to_date(Date,'YYYY-MM-DD HH24:MI:SS') //Date可为输入时间
//或
date_format(Date,'%Y-%m-%d %H:%i:%s') //Date可为输入时间

//PostgreSQL:
to_date(Date,'YYYY-MM-DD HH24:MI:SS') //Date可为输入时间
//或
to_char(Date,'YYYY-MM-DD HH24:MI:SS') 

2、MySQL / 达梦 / postgreSQL 获取年、月、日

//Mysql/达梦:函数year(),month(),day()取年份、月份、日期 (week()数据库执行返回值不一致,不做参考)
//如:
select year(now()) //=>2022

//PostgreSQL:
select to_char(now(),'YYYY')  //=>2022
select to_char(now() - interval '1 year','YYYY')  //=>2021 上一年

3、范围查询:

  1. and:
'时间字段'>='2021-12-12' and '时间字段' <= '2021-12-12'
  1. between:
'时间字段' between '2021-12-12' and '2021-12-12'
  1. 含时分秒时使用
TO_TIMESTAMP('时间字段', 'yyyy-mm-dd HH24:MM:SS')

扩展参考:https://www.cnblogs.com/liuxiutianxia/p/9957391.html

二、获取近几天、一周、一月、一年时间内的数据

1、近10天

//postreSQL
AlarmDate >= now() - interval '10 day'

//达梦、MySQL
DATE_SUB(curdate(), INTERVAL '10' DAY) <= AlarmDate 

2、近一周

//postreSQL
AlarmDate >= now() - interval '1 week'

3、近一月

//postreSQL
AlarmDate >= now() - interval '1 month'

//达梦、MySQL
DATE_SUB(curdate(), INTERVAL '1' MONTH) <= AlarmDate 

4、近一年

//postreSQL
AlarmDate >= now() - interval '1 year'

//达梦、MySQL
DATE_SUB(curdate(), INTERVAL '1' YEAR) <= AlarmDate 

5、取当前时间本季度、上一季度

// -- mysql、达梦
//本季度
select QUARTER(current_date) as quar; // 2022-04-22 => 2
//上一季度
DATE_SUB(current_date, INTERVAL '1' QUARTER) <= AlarmDate ;

// -- postgreSQL 
// 查询字段 
SELECT EXTRACT(QUARTER FROM current_date) as quar ; //2022-10-8 => 4.0
//具体时间时
SELECT EXTRACT(QUARTER FROM TIMESTAMP '2022-10-1') as quar ; //4.0
// 查询本季度
select * from tablename where EXTRACT(QUARTER FROM  Date) = EXTRACT(QUARTER FROM  current_date) ;
// 查询上一季度
select * from tablename where EXTRACT(QUARTER FROM  Date) = EXTRACT(QUARTER FROM  current_date) - 1 ;

MySQL — DATA_SUB:菜鸟教程 https://www.runoob.com/sql/func-date-sub.html


版权声明:本文为weixin_44167504原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。