如何调整Excel公式将德语格式日期转为SQL INSERT标准日期?
解决Excel生成SQL语句时德语日期格式转换问题
你的问题出在Excel无法识别B列的DD.MM.YYYY内容为有效日期值,导致TEXT(B2,"yyyy-mm-dd")无法正确解析,返回错误的占位符格式。以下是两种可行的调整方案:
方案1:先将文本日期转为日期值再格式化
如果B列是文本格式的DD.MM.YYYY字符串,先用DATE函数提取年月日转换为标准日期,再用TEXT格式化为SQL要求的YYYY-MM-DD:
="INSERT INTO Bestellungen_1NF (BestellNr, Bestelldatum, KundenNr, KundenVorname, KundenNachname, Bestellposition, ArtikelNr, Preis, Menge) VALUES (" & A2 & "; '" & TEXT(DATE(RIGHT(B2,4),MID(B2,4,2),LEFT(B2,2)),"yyyy-mm-dd") & "'; " & C2 & "; '" & D2 & "'; '" & E2 & "'; " & F2 & "; " & G2 & "; " & H2 & "; " & I2 & ");"
RIGHT(B2,4)提取年份(最后4位)MID(B2,4,2)提取月份(第4位开始的2个字符)LEFT(B2,2)提取日期(前2位)DATE()将这三部分转为标准日期值,再用TEXT()格式化为目标格式
方案2:直接拼接年月日(更简单)
跳过日期转换步骤,直接从DD.MM.YYYY文本中提取对应部分拼接成YYYY-MM-DD:
="INSERT INTO Bestellungen_1NF (BestellNr, Bestelldatum, KundenNr, KundenVorname, KundenNachname, Bestellposition, ArtikelNr, Preis, Menge) VALUES (" & A2 & "; '" & RIGHT(B2,4) & "-" & MID(B2,4,2) & "-" & LEFT(B2,2) & "'; " & C2 & "; '" & D2 & "'; '" & E2 & "'; " & F2 & "; " & G2 & "; " & H2 & "; " & I2 & ");"
额外验证步骤
如果B列原本是日期值但仍报错:
- 选中B列,右键设置单元格格式为“日期”,确保Excel识别为日期
- 若仍有问题,尝试用
SUBSTITUTE(B2,".","/")替换分隔符后再转日期,适配德语区域的日期解析规则
内容的提问来源于stack exchange,提问作者Max F
相关产品推荐
相关产品推荐

