需求:想要获取日期格式(如:2020-07-10)列表,但是日期在表中 date_list 字段中的格式如下: 时间戳(毫秒) 并且以 | 隔开的字符串:
1594656000000|1594742400000|1594828800000|1594915200000
首先把字符串切割。
SELECT
substring_index(substring_index(a.date_list, '|', b.help_topic_id + 1), '|', - 1) AS date
FROM table_date a
INNER JOIN mysql.help_topic b
ON b.help_topic_id < (length(a.date_list) - length(REPLACE(a.date_list, '|', '')) + 1)
where a.project_id = 1 and a.state= 1
执行结果如下:
将毫秒值转换为指定的日期格式
使用MYSQL自带的函数FROM_UNIXTIME(unix_timestamp,format)
所以上面的sql,增加函数FROM_UNIXTIME(unix_timestamp,format)
SELECT
from_unixtime(substring_index(substring_index(a.date_list, '|', b.help_topic_id + 1), '|', - 1)/1000,'%Y-%m-%d') AS date
FROM table_date a
INNER JOIN mysql.help_topic b
ON b.help_topic_id < (length(a.date_list) - length(REPLACE(a.date_list, '|', '')) + 1)
where a.project_id = 1 and a.state= 1
执行结果:
信息加载中,请等待
微信客服(速回)
微信客服(慢回)