一、postgresql兼容MySQL 时间函数date_format
MySQL DATE_FORMAT() 函数
定义和用法
DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。
语法
DATE_FORMAT(date,format)
date 参数是合法的日期。format 规定日期/时间的输出格式。
在postgresql创建同名函数实现相同的功能
CREATE OR REPLACE FUNCTION date_format(indate anyelement, intext text)
RETURNS text
LANGUAGE plpgsql
AS $function$
BEGIN
IF upper(inText) = upper('%Y%m%d_%H%i') THEN
return to_char(inDate,'YYYYMMDD_HH24MI');
END IF;
IF upper(inText) = upper('%Y%m%d%H%i%s') THEN
return to_char(inDate,'YYYYMMDDHH24MISS');
END IF;
IF upper(inText) = upper('%Y-%m-%d %H') THEN
return to_char(inDate,'YYYY-MM-DD HH24');
END IF;
IF upper(inText) = upper('%Y-%m-%d') THEN
return to_char(inDate,'YYYY-MM-DD');
END IF;
IF upper(inText) = upper('%Y-%m') THEN
return to_char(inDate,'YYYY-MM');
end if;
IF upper(inText) = upper('%m%d') THEN
return to_char(inDate,'MMDD');
END IF;
return '';
END;
$function$
二、错误: 无法确定多态类型, 因为输入类型为unknown
解决方法,指定类型,to_date(‘2021-07-01’,‘yyyy-mm-dd’)
实现区间查询的功能:
SELECT COUNT
( 0 )
FROM
V_UserList d
WHERE
del_flag = '0'
AND date_format (create_time, '%y%m%d') >= date_format(to_date('2021-07-01','yyyy-mm-dd'), '%y%m%d')
AND date_format (create_time, '%y%m%d') <= date_format(to_date('2021-07-16','yyyy-mm-dd'), '%y%m%d')