跳到主要内容

to_date:字符串转日期

速查结论

to_date(date_str[, fmt]) 是 Spark SQL 中用于将字符串解析为日期类型的函数。

语法

to_date(date_str[, fmt])

参数说明

参数说明
date_str要解析为日期的字符串
fmt可选,日期格式模式。请参阅日期时间模式以获取有效的日期和时间格式模式。若不指定,则按默认规则解析

to_date(date_str[, fmt]) - 使用fmt表达式解析date_str表达式到日期。如果输入无效,则返回null。如果省略了fmt,默认情况下,它遵循将字符串转换为日期的规则。

Examples:

> SELECT to_date('2009-07-30 04:17:52');
2009-07-30
> SELECT to_date('2016-12-31', 'yyyy-MM-dd');
2016-12-31

常见报错与避坑指南

  • 格式不匹配导致 NULL:当 date_str 的格式与 fmt 不匹配时,函数静默返回 NULL(而非抛出异常)。建议始终显式指定 fmt 参数以避免歧义。
  • 时间部分被截断to_date() 会丢弃输入中的时间部分,只保留日期。如果需要在保留时间信息的同时转换,请使用 to_timestamp()
  • 默认格式的陷阱:不指定 fmt 时,函数按 Spark 默认日期规则解析,这可能与本地日期格式不一致。强烈建议在生产代码中显式指定 fmt。

Since: 1.5.0

📱关注公众号

「数据仓库技术」文章同步更新,不错过每一篇干货

微信公众号二维码
💬加群交流

备注「数据仓库技术」加入社群,每日一道大厂SQL真题

交流微信二维码

你可能还想看