我有一个名为opened\u dt的列,带有字符串格式的时间戳。
+----------------------------+
| opened_dt |
+----------------------------+
| 01/01/2015 21:50:00.000000 |
+----------------------------+
跑步
DESCRIBE TABLE 'myTable'
告诉我列的类型是string
+-----------+-----------+---------+
| col_name | data_type | comment |
+-----------+-----------+---------+
| opened_dt | string | null |
+-----------+-----------+---------+
我想做的是:
"Show me all entries starting 01.01.2019 until now".
Which I translate to "select * from 'table' where opened_dt >= 01.01.2019".
在此之后,我将打开的日期从转换为日期。
使用时:
SELECT cast(opened_dt AS timestamp)
只是给了我
+------------+
| opened_dt |
+------------+
| null |
+------------+
使用时:
SELECT to_date(opened_dt AS timestamp)
只是给了我
+---------------------------------+
| to_date('myTable'.`opened_dt`) |
+---------------------------------+
| null |
+---------------------------------+
我尝试了其他尝试,但给出了错误的输出:
SELECT * FROM 'myTable' WHERE opened_dt >= '01/01/2019 00:00:00.000000'
SELECT * FROM 'myTable' WHERE opened_dt IN ('%2019%', '%2020%', '%2021%')
如何将字符串转换为日期以筛选所有小于2019年1月1日的日期?
我在databricks中寻找sql中的一些东西(其他答案在spark中)。
1条答案
按热度按时间rks48beu1#
您可以使用
to_timestamp
并提供与列的日期格式匹配的日期格式字符串。