如何提取两列DateTime日期的最早/最晚值?求实现方案
获取每个工厂最早投产日期的实现方法
方法1:使用SQL实现
利用LEAST()函数(大部分数据库支持)
很多关系型数据库(如MySQL、PostgreSQL、SQLite)都内置了LEAST()函数,可直接返回多个字段中的最小值,正好匹配你的需求:
SELECT FacilityID, LEAST(`DateStart Product1`, `DateStart Product2`) AS `Start Date` FROM your_table_name;
执行后得到的结果如下:
FacilityID, Start Date 111, 2022-01-15 200, 2019-01-01
兼容所有数据库的CASE WHEN写法
如果你的数据库不支持LEAST(),可以用条件判断手动比较两个日期:
SELECT FacilityID, CASE WHEN `DateStart Product1` < `DateStart Product2` THEN `DateStart Product1` ELSE `DateStart Product2` END AS `Start Date` FROM your_table_name;
方法2:使用Python Pandas实现
如果你用Python处理这份数据,可以直接对日期列取行最小值:
import pandas as pd # 读取数据 df = pd.read_csv("your_data.csv") # 计算最早日期 df["Start Date"] = df[["DateStart Product1", "DateStart Product2"]].min(axis=1) # 保留需要的列并输出 result = df[["FacilityID", "Start Date"]] print(result.to_csv(index=False))
运行后输出结果与你期望的完全一致。
内容的提问来源于stack exchange,提问作者Luis Garcia
相关产品推荐
相关产品推荐

