Sql 如何在apache drill中从时间戳字段中提取日期部分?

Sql 如何在apache drill中从时间戳字段中提取日期部分?,sql,apache-drill,sql-date-functions,Sql,Apache Drill,Sql Date Functions,我在钻取表中有一个时间戳字段(比如date\u time),如何仅从该字段中提取日期字段。看到了很多日期操作功能,但都没有帮助 这是样本数据 +------------------------+ | date_time | +------------------------+ | 2017-01-01 03:45:58.0 | | 2017-01-01 21:42:20.0 | | 2017-01-01 15:08:47.0 | | 2017-01-01 19:5

我在钻取表中有一个时间戳字段(比如date\u time),如何仅从该字段中提取日期字段。看到了很多日期操作功能,但都没有帮助

这是样本数据

+------------------------+
|       date_time        |
+------------------------+
| 2017-01-01 03:45:58.0  |
| 2017-01-01 21:42:20.0  |
| 2017-01-01 15:08:47.0  |
| 2017-01-01 19:59:39.0  |
| 2017-01-01 22:37:24.0  |
+------------------------+
我需要一个如下的输出

+-------------+
|  date_time  |
+-------------+
| 2017-01-01  |
| 2017-01-01  |
| 2017-01-01  |
| 2017-01-01  |
| 2017-01-01  |
+-------------+

我不想做字符串操作。:)

除了第一条注释中的内容(即,
cast(date\u time as date)
)之外,另一个选项是:

select to_date(datetime)
您引用的应该有一个链接,该链接显示了如何将自定义格式应用于时间戳字段:

select to_char(date_time, 'yyyyMMdd');

如果表中的日期格式正确,请尝试此操作。一种简单的方法

select cast(date_time as date) date_time from table

从表中选择cast(date\u time as date)date\u time
这将带来所需的输出和它的工作状态。您也可以使用
选择convert(varchar(10),current\u timestamp,120)
第一个看起来很简单。我将此字段用于按天分组,那么您的哪个选项对于分组查询更有效。?简单转换(第一个)对于分组更有效。但我想不出这两种方法之间的区别。另外,在样本数据中使用这两种方法检查性能