Highgo(PG)与Doris(Mysql)对应函数格式转换

1、年龄计算:
-- HighGo 
 EXTRACT(YEAR FROM age(FIN_OPR_REGISTER.reg_date,FIN_OPR_REGISTER.BIRTHDAY))
-- Doris  
 TIMESTAMPDIFF(YEAR,FIN_OPR_REGISTER.BIRTHDAY,FIN_OPR_REGISTER.reg_date)
2、日期转字符串
-- HighGo 
 to_char(P.OPERATETIME,'yyyy-mm-dd')
-- Doris  
 DATE_FORMAT(P.OPERATETIME, '%Y%m%d')
3、字符串转日期
-- HighGo 
 to_date('2025-03-10','yyyy-mm-dd')
-- Doris  
 str_to_date('2025-03-10 15:21:23', '%Y-%m-%d %H:%i:%s')
4、字符串分割函数
-- HighGo 

	SELECT distinct PERSONID,checkid,pname,visitdate,doctor,childmonth,
		nextvisitdate,DEPTCODE,serviceother,PERSONCODE,
		regexp_split_to_table(servicecode, ',') AS split_value1,
		regexp_split_to_table(servicename, ',') AS split_value2 
	FROM gw_fds."CHILD_MEDICAL"

-- Doris  

	SELECT
		distinct PERSONID,checkid,pname,visitdate,doctor,childmonth,nextvisitdate,DEPTCODE,serviceother,PERSONCODE,
		split_value1,split_value2
	FROM
		ODS.gw_fds.CHILD_MEDICAL
	LATERAL VIEW
		explode(split_by_string(servicecode, ',')) a AS split_value1
	LATERAL VIEW
			explode(split_by_string(servicename, ',')) b AS split_value2
形如'1,2,3';'a,b,c' 一一对应为:'1 a','2 b','3 c'
	SELECT
		distinct grdabhid,dassjg,dassjg_mc,zjhm,split_value1, split_value2
	FROM
	   ODS.jc_his.T_EHR_DWDA_RKXZL
	LATERAL VIEW
		posexplode(split_by_string(ylfyzflx, ',')) t AS pos, split_value1
	LATERAL VIEW
		posexplode(split_by_string(ylfyzflx_mc, ',')) b AS pos_mc, split_value2
	where pos = pos_mc
5、regexp_replace函数
-- HighGo 
	regexp_replace('123abc123','[0-9]','','g') 
-- Doris  
	regexp_replace('123abc123','[0-9]','') 
6、位置函数
-- HighGo 
	position('a' in '123a123') 
-- Doris  
	locate('a','123a123')
7、转义字符
-- HighGo 
 select 'It''s Gooddddd'
-- Doris  
 select 'It\'s Gooddddd'

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐