将复杂文本日期转换为mysql格式

将复杂文本日期转换为mysql格式

我在这种格式的 Excel 文件中有日期:Mon, 12 Sep 2022 19:30:16 UTC但我想将 CSV 数据上传到需要yyyy-mm-dd这种格式的 mySQL 数据库。

我已经尝试了所有函数,例如 DATE、DATEVALUE 等,但无法将所有部分重新组合在一起,并且无法将日期保存为简单文本yyyy-mm-dd(与 MS 日期序列或类似文件相对)。

有没有简单的方法可以做到这一点?

答案1

对于英语-美国,假设日期始终是您显示的精确格式的文本字符串,然后尝试:

=TEXT(--MID(A1, 6,11),"yyyy-mm-dd")

答案2

实际上,如果您可以到达12 Sep 2022,那么您只需要再做一件事:将到达那里的公式包装在VALUE函数中,Excel 就会将其转换为“日期数字”,然后可以根据需要进行格式化。

不管你怎么做,都只需要最后一步。所以也许:

=VALUE(  TEXTAFTER(LEFT(TEXTBEFORE(F1,":"),LEN(TEXTBEFORE(F1,":"))-3),", ")  )

这样做可能不行,可能是因为操作系统设置中的选项不同,但也可能不行。我不会进行实验,也许不会将所有内容都恢复原样,但你肯定可以。

有很多方法可以生成 Excel 所需的“日期数字”。一个简单的方法,从您到达的地方开始(如果操作系统设置阻止VALUE成功),将用空格分隔三个值,并在表格的查找中使用月份名称(将表格隐藏在命名范围内:在单元格中创建表格,然后使用 的严格版本将ARRAYTOTEXT其转换为字符串,将每个其他逗号分隔符编辑为分号分隔符,复制并粘贴值,然后将其复制到 的大括号/括号内的命名范围内,或者直接输入)。查找将是三个字符的月份缩写,返回的值将是匹配的月份数字。然后使用该结果和 拆分的另外两个部分将该={}结果包装在 中。DATE12 Sep 2022

或者使用我在开始时给出的“也许像这样”。

答案3

是的,有一个相当简单的方法可以做到这一点。如果您没有最新版本的 Excel,其中包含 TEXTAFTER 和 TEXTSPLIT,那么只需使用文本到列,以空格分隔,并在代表年、月、日的三个单元格上使用 VALUE 来获取序列日期。然后,您可以使用 FORMAT 来实现您想要的任何格式。

相关内容