我无法找到解决方案来让我的表格上的日期列正确地从 mm-dd-yyyy 和 dd-mm-yyyy 的混合转换/更改为 mm-dd-yyyy。
格式为 mm-dd-yyyy 的列中正确的日期用“/”分隔,其余格式为 dd-mm-yyyy 的日期用“-”分隔。我使用的数据来自 Kaggle Walmart 数据集。
日期 |
---|
2010 年 5 月 2 日 |
2010年12月2日 |
2010年2月19日 |
2010年2月26日 |
2010年5月3日 |
2010年12月3日 |
2010年3月19日 |
2010年3月26日 |
我将数据集作为平面文件 CSV 导入 SQL Server,其中将数据导入为 varchar(50),我可以轻松地将其他列操作为其他数据类型(DECIMAL 和 INT),但 [Date] 列一直给我带来麻烦我在尝试将数据转换为“日期”数据类型后收到此消息:
从字符串转换日期和/或时间时转换失败。
我的逻辑告诉我使用“/”和“-”作为分隔符将列分成三列,但这仍然会给我带来 mm-dd 和 dd-mm 混合的问题。
我有两个主要问题。
我收到的消息是否是由于日期混合而导致 SQL 将该列视为字符串?
是否有最佳方法将所有日期转换为 mm-dd-yyyy 格式?
非常感谢任何解决问题的帮助!
如果您确实拥有两种格式的日期,而没有其他任何信息来指示如何处理它们,则“不可能”准确确定每个日期的正确格式。 原因是存储的值不明确。例如,“01-02-2024”可以是
1 月 2 日或 2 月 1 日,并且如果有足够的行,您肯定会遇到两者都是正确解释的情况。其他系统通过解析前端的日期、使用原始用户系统或浏览器的文化设置来处理此类事情,然后首先存储为日期而不是字符串。
我的逻辑告诉我使用“/”和“-”作为分隔符将列分成三列,但这仍然会给我带来 mm-dd 和 dd-mm 混合的问题。
或不。大多数数据库都有专用的
date
datetime
类型。用那个。