如何使用SQL Server从日期字符串中提取月份和年份?
SQL Server提取日期字符串中的月份和年份
针对你给出的固定格式日期字符串(月份 日期, 年份),可以用两种可靠的方法实现需求:
方法一:转换为日期类型后格式化(推荐)
如果你的字符串都是合法的日期格式,优先用这种方法,逻辑简洁且不易出错:
SELECT FORMAT(CAST(your_column AS DATE), 'MMMM yyyy') AS month_year FROM your_table;
CAST(your_column AS DATE)将字符串转换为DATE类型,SQL Server会自动识别这种格式的日期FORMAT(..., 'MMMM yyyy')把日期格式化为「完整月份名 + 4位年份」的形式,正好匹配你的需求
方法二:纯字符串操作(兼容非标准日期场景)
如果存在无法转换为日期的异常字符串,可以用字符串截取的方式:
SELECT CONCAT( LEFT(your_column, CHARINDEX(' ', your_column, CHARINDEX(' ', your_column) + 1) - 1), ' ', RIGHT(your_column, 4) ) AS month_year FROM your_table;
CHARINDEX(' ', your_column)找到第一个空格的位置(月份和日期之间的空格)CHARINDEX(' ', your_column, ... + 1)找到第二个空格的位置(日期和逗号前的空格)LEFT(...)截取到第二个空格前的部分,得到完整月份RIGHT(your_column, 4)直接截取最后4位得到年份,再拼接空格组合成结果
内容的提问来源于stack exchange,提问作者java-life-love
相关产品推荐
相关产品推荐

