当前位置: 首页 > 面试题库 >

将具有不同格式的字符串转换为日期

莘羽
2023-03-14
问题内容

我有一个带有字符串列( varchar(200) )的表,其中包含不同格式的日期。例如

may 24 1983 12:00AM
1981-01-13 00:00:00
1979-01-13 00:00:00:123

我想将此日期转换为要提取年份的日期。我该怎么办?我使用了STR_TO_DATE,但效果不佳。我必须为每种不同的格式使用SUBSTRING吗?

MySQL 5.0.95版


问题答案:

在手册页上有一个检测有效日期的技巧。您可以使用它来确定STR_TO_DATE格式是否有效。

select foo,
    case when length(date(str_to_date(foo,"%Y-%m-%d %H:%i:%S"))) is not null then str_to_date(foo,"%Y-%m-%d %H:%i:%S")
        when length(date(str_to_date(foo,"%b %d %Y %h:%i%p"))) is not null then str_to_date(foo,"%b %d %Y %h:%i%p")
    end as newdate
from my_table

为您期望的所有人提供一种格式。测试像疯了似的。

祝你好运。

(哦,恭喜您尝试清理错误的架构!)



 类似资料:
  • 我刚到爪哇。Postgres db包含日期的格式为。我需要转换为。 我已经试过了,但是显示的结果是错误的

  • 问题内容: 我想要这种格式 问题答案: 您需要先 解析 日期字符串(使用方法),才能 使用与格式匹配的格式获取对象。 然后使用所需的格式来 格式化 Date对象(Use 方法)以获取字符串。 输出:- 第一种格式是RFC 822 TimeZone与您的日期字符串匹配。有关在日期格式中使用的其他各种选项,请参见。

  • 我得到一串零。有人能帮忙吗?

  • 问题内容: 我有一个包含日期格式的字符串。 您如何建议我以最佳方式将其转换为格式? 这就是我天真地做的事情: 但是还有其他更优雅,更有效的方法吗?就是 使用一些内置功能?快速搜寻API时,我找不到一个。 这里有人知道替代方法吗? 问题答案: 用途:

  • 我正在尝试用varchar列中的更新日期列 这里,是varchar数据类型,是日期数据类型。有多种类型的日期格式,例如,09302012, 9/30/2012, 2012-09-30和更多不同的类型 如何编写单个查询以在单个查询中使用各种类型的日期格式更新列。 已编辑::: 抱歉搞砸了...我刚刚意识到这些是ssis包中的单独(部分)更新... 我们有不同类型(6)的品牌,每个品牌都会发送不同日期

  • 问题内容: 我想将此字符串转换为以下日期格式。 我收到此错误: 问题答案: 嗯,是。您传递给的构造函数的参数表示您希望日期采用的格式。 对于“ 2013年2月26日,星期二”之类的输入有效。它甚至不是 稍微 有效期为“2013年2月26日”。您知道您正在 解析 文本,而不是对其进行格式化吗? 看起来您想要的格式字符串为“ M-dd-yyyy”或可能为“ Md-yyyy”。 如果尝试将一种格式转换为