如何用SQL将'年/月'格式字符串转换为'月/年'?
如何将'Year/Month'格式字符串转换为'Month/Year'格式
方法一:字符串拆分拼接(无需正则,直观易懂)
直接按斜杠/分割字符串,调换两部分顺序后重新拼接:
Python示例:
date_str = "2023/10" year, month = date_str.split('/') converted = f"{month}/{year}" # 输出结果:'10/2023'
MySQL示例:
SELECT CONCAT( SUBSTRING_INDEX('2023/10', '/', -1), '/', SUBSTRING_INDEX('2023/10', '/', 1) ) AS converted_date;
方法二:正则替换(REGEX_REPLACE)
用正则捕获斜杠前后的年份和月份分组,然后调换顺序输出。核心思路是匹配年份/月份的结构,将两个分组的位置互换。
正则表达式:^(.*)/(.*)$
^匹配字符串开头(.*)捕获斜杠前的所有字符(年份)/(.*)$捕获斜杠后的所有字符(月份)
替换模板:$2/$1(或\2/\1,取决于所用语言的语法)
Python(re.sub)示例:
import re date_str = "2023/10" converted = re.sub(r'^(.*)/(.*)$', r'\2/\1', date_str)
PostgreSQL示例:
SELECT REGEXP_REPLACE('2023/10', '^(.*)/(.*)$', '\2/\1') AS converted_date;
JavaScript示例:
const dateStr = "2023/10"; const converted = dateStr.replace(/^(.*)\/(.*)$/, '$2/$1');
注意:不同语言的正则分组引用符号可能不同,比如Python、PostgreSQL用\1/\2,JavaScript、Java用$1/$2,使用时需对应调整。
内容的提问来源于stack exchange,提问作者user14262341
相关产品推荐
相关产品推荐

