【发布时间】:2020-12-08 02:29:59
【问题描述】:
我已将客户数据转换为 DB 表,其中列类型 Varchar 中的单元格值很少,包含日期和少数不包含日期。包含特定格式的日期的,需要转换成另一种格式,以便进一步用于数据分析工作。我尝试了以下查询,但它显示了没有日期的单元格的错误。我该如何解决这个问题?
基本上我想去掉实际时间并附加 000000 代替实际时间以及日期。
查询:
UPDATE Table1
SET C1 = DATE_FORMAT(C1,'%Y%m%d000000')
WHERE DATE_FORMAT(C1,'%Y%m%d%H%i%s') AND C1 IS NOT NULL;
错误:
代码:1292 截断不正确的日期时间值:'EVN'
【问题讨论】:
-
请向我们展示您的数据是什么样的,以及您想要哪种输出。请注意,错误消息表明您在
c1列中有字符串'EVN'- 无论格式如何,这肯定看起来不像是有效日期。 -
我的数据有 C1 列,它是 VARCHAR 类型。 C1 包含多个日期字符串和其他字符串,如 EVN、ACT 等。下面是示例。请参阅随附的屏幕截图。
-
DATE_FORMAT()用于将日期时间转换为字符串。要走另一条路,请使用STR_TO_DATE() -
使用
STR_TO_DATE('%m/%d/%y', C1)