sql SUBSTRING_INDEX 和concat 的使用

需求:需要传递的参数为 xxxx年xx月xx至 xxxx年xx月xx,比如:2022-03-26至2022-04-25
一开始想到的是在代码中用字符串截取,但是由于这个年月日的信息是存在一个json格式的数据中的,所以就考虑在sql中如何截取。正好SUBSTRING_INDEX 函数可以满足截取,拼接的话使用concat

sql SUBSTRING_INDEX 和concat 的使用_第1张图片
取出开始时间和结束时间 然后拼接
首先截取开始时间和结束时间:这里以结束时间为例子
sql SUBSTRING_INDEX 和concat 的使用_第2张图片

在这里插入代码片

再次将第一次截取的部分作为新的整体,再次截取 获得结束时间
sql SUBSTRING_INDEX 和concat 的使用_第3张图片
sql:

SELECT
	SUBSTRING_INDEX( SUBSTRING_INDEX( user_detail_info, '"archivesEndTime":"',- 1 ), '","archivesStartTime"', 1 ) 
FROM
	send_messgae 
WHERE
	message_id = '7b3f03258f444a08a618138a22c07ca1'

同理截取开始时间,然后使用concat函数进行拼接

SELECT
	concat(
		SUBSTRING_INDEX( SUBSTRING_INDEX( user_detail_info, 'archivesStartTime":"', - 1 ), '","list"', 1 ),
		'至',
	SUBSTRING_INDEX( SUBSTRING_INDEX( user_detail_info, 'archivesEndTime":"', - 1 ), '","archivesStartTime', 1 )) AS serialNumber 
FROM
	send_messgae 
WHERE
	message_id = '7b3f03258f444a08a618138a22c07ca1'

sql SUBSTRING_INDEX 和concat 的使用_第4张图片
记录一下,有问题可以交流 qq:876942434

你可能感兴趣的:(sql,数据库,database)