1

我在 databricks 中有一个源表,其中有一个名为date. 我发现这date就像一个时间戳。例如,它的数据是date = 2021-07-09 00:07, date = 2021-12-21 09:19

上面的日期不是一个完整的时间戳,所以我将它转换为一个字符串,我得到了以下结果

cast(date as string) = 2021-07-09 00:07:09.529, 2021-12-21 09:19:21.019

我想知道为什么将其转换为字符串会给出毫秒数,并且是否有任何类似于 to_timestamp 的函数来转换日期而不是转换为字符串。

可以将转换为字符串的日期与转换为字符串的其他日期进行比较吗?

4

1 回答 1

0

如果该date字段具有时间戳,那么您所看到的只是视觉表示,可能会省略一些非必要的细节 - 在内部,它以更紧凑的表示形式存储,例如long表示毫秒数。但是,当您确实转换为字符串时,就会使用这种紧凑的表示形式并且您会获得所有详细信息。

要将timestamp类型转换为date类型,只需执行cast(date as date). 如果要将字符串转换为日期或时间戳,只需使用to_dateto_timestamp函数,它们允许指定用于解析字符串组件的格式字符串。如果要将日期或时间戳字段转换为字符串并控制字符串的格式,则需要查看date_format函数。

PS 您可以随时参考Databricks 官方文档中的SQL 参考

于 2021-12-22T07:25:05.940 回答