我有这个字符串'年/月',我想让它'月/年'。现在我已经研究了REVERSE函数,但这会将类似'2023/10'的东西转换为'01/3202',这不是我想要的。然后我想到了一个正则表达式,但我不确定如何使用正则表达式函数来识别'/'并将'/'前面的所有内容移动到字符串的末尾。也许像REGEX_REPLACE这样的东西可以工作?从来没用过这个。任何帮助将不胜感激。
REVERSE
'2023/10'
'01/3202'
REGEX_REPLACE
u1ehiz5o1#
如果数据总是按照您所描述的格式进行格式化,并且不需要进行完整性检查,那么一种直接的方法是。
SELECT RIGHT('2023/10',2) + '/'+ LEFT('2023/10',4)
ruyhziif2#
我建议使用字符串操作符。我用PostgreSQL写了一个答案,但几乎每个SQL数据库都以相对相同的方式具有此功能,您应该阅读文档。(Edit:我稍微修改了一下,现在MySQL上也能用了)在PostgreSQL documentation中,我们有一个substring函数和一个concat函数。所以你需要做的就是从一个'YYYY/MM'字符串中获取最后两个字符,用一个'/'字符连接它,然后用前四个字符连接结果。
substring
concat
select concat(substring('2023/10' from 6 for 2), '/', substring('2023/10' from 1 for 4)) // response: '10/2023'
2条答案
按热度按时间u1ehiz5o1#
如果数据总是按照您所描述的格式进行格式化,并且不需要进行完整性检查,那么一种直接的方法是。
ruyhziif2#
我建议使用字符串操作符。我用PostgreSQL写了一个答案,但几乎每个SQL数据库都以相对相同的方式具有此功能,您应该阅读文档。
(Edit:我稍微修改了一下,现在MySQL上也能用了)
在PostgreSQL documentation中,我们有一个
substring
函数和一个concat
函数。所以你需要做的就是从一个'YYYY/MM'字符串中获取最后两个字符,用一个'/'字符连接它,然后用前四个字符连接结果。