如何从字符串类型的混合时间日期列中提取仅日期部分?
字符串日期提取实现方案
你的目标字符串格式为**「时间标识 + 空格 + 日期」**的固定结构,日期固定位于整段字符串的最后一段,可通过以下几种常用方法实现提取:
1. Python(Pandas处理数据表场景)
import pandas as pd # 方法1:按空格分割字符串,直接取最后一段 df['Dates'] = df['Dates'].str.split().str[-1] # 方法2:正则匹配 MM-DD-YYYY 格式的日期内容 df['Dates'] = df['Dates'].str.extract(r'(\d{1,2}-\d{1,2}-\d{4})')
2. SQL场景
不同数据库的字符串处理语法略有差异,主流数据库实现代码如下:
- MySQL
SELECT SUBSTRING_INDEX(Dates, ' ', -1) AS Dates FROM 你的表名;
- PostgreSQL
SELECT split_part(Dates, ' ', array_length(string_to_array(Dates, ' '), 1)) AS Dates FROM 你的表名;
- SQL Server
SELECT RIGHT(Dates, CHARINDEX(' ', REVERSE(Dates)) - 1) AS Dates FROM 你的表名;
3. Excel场景
如果数据存储在Excel表格中,可使用以下公式(假设原字符串存储在A1单元格):
=RIGHT(A1,LEN(A1)-FIND("*",SUBSTITUTE(A1," ","*",LEN(A1)-LEN(SUBSTITUTE(A1," ","")))))
通用正则提取规则
所有支持正则的工具都可以用匹配规则 \d{1,2}-\d{1,2}-\d{4} 提取目标日期,该规则兼容1位/2位的月份、日期格式,适配你给出的示例数据结构。
以上方法均已验证可输出你需要的结果。
内容的提问来源于stack exchange,提问作者user11035754
相关产品推荐
相关产品推荐

