0

我有一个字段名称| 身份证 | 时间戳

时间戳是像'06/29/2000 00:00:00'这样的字符串现在我必须根据日期过滤表格 - 比如说

    Select Name
           ,ID
           ,Timestamp
   From Table Where **Function**(Timestamp)= '2000-06-29' (or 2000/06/29 or 06/29/2000)         

我使用 SQL 助手作为 Hadoop HI 的 UI 工具,我尝试了 TO_DATE 和其他几个功能。请指教

4

3 回答 3

1

您可以先更改时间戳格式并应用该to_date函数从时间戳中修剪时间。

您可以转换时间戳格式如下。

select from_unixtime(unix_timestamp('06/29/2000 00:00:00' ,'dd/MM/yyyy HH:mm:SS'), 'yyyy-MM-dd HH:mm:SS') from table;

to_date函数应用于上述 sql。

Select Name
           ,ID
           ,Timestamp
   From Table Where to_date(from_unixtime(unix_timestamp('06/29/2000 00:00:00' ,'dd/MM/yyyy HH:mm:SS'), 'yyyy-MM-dd HH:mm:SS'))= '2000-06-29'

我没有尝试过上述解决方案,因为我现在没有环境。如果您遇到任何错误,请告诉我。

于 2018-07-04T03:02:21.360 回答
0

你说时间戳是字符串?您是否尝试过比较字符串?

Select Name
       ,ID
       ,Timestamp
From Table 
where SUBSTR(Timestamp, 1, 10) = '06/29/2000'
于 2018-07-03T17:33:34.310 回答
0

这对我有帮助,我们仍然可以玩:

Select Name ,ID ,Timestamp From Table Where TO_DATE(from_unixtime(unix_timestamp(Timestamp,'MM/dd/yyyy HH:m:ss'),'yyyy-MM-dd'))>= '2018-07-10'

于 2018-07-13T20:13:57.063 回答