MySQL date_format(date, '%Y-%m-%d %h') 在 Presto 中相当于 `day-hour`
Posted
技术标签:
【中文标题】MySQL date_format(date, \'%Y-%m-%d %h\') 在 Presto 中相当于 `day-hour`【英文标题】:MySQL date_format( date, '%Y-%m-%d %h') as `day-hour` equivalent in PrestoMySQL date_format(date, '%Y-%m-%d %h') 在 Presto 中相当于 `day-hour` 【发布时间】:2020-11-27 08:17:27 【问题描述】:我有列日期列,时间戳数据类型。
date
'2020-08-05 01:01:24.000'
'2020-08-05 02:02:24.000'
'2020-08-05 02:03:24.000'
我想按天数分组。
所以在 mysql 中我会这样做
select date_format( date, '%Y-%m-%d %h') as `day-hour`
from table
group by date_format( date, '%Y-%m-%d %h');
会输出:
day-hour
2020-08-05 01
2020-08-05 02
如何在 Presto 中做到这一点?
【问题讨论】:
【参考方案1】:您可以将这些字符串转换为 TIMESTAMP
并使用 date_trunc
将时间戳截断为小时:
WITH data(x) AS (VALUES
'2020-08-05 01:01:24.000',
'2020-08-05 02:02:24.000',
'2020-08-05 02:03:24.000')
SELECT date_trunc('hour', CAST(x AS TIMESTAMP))
FROM data
GROUP BY 1
_col0
-------------------------
2020-08-05 01:00:00.000
2020-08-05 02:00:00.000
(2 rows)
【讨论】:
完美!也显得更干净!谢谢以上是关于MySQL date_format(date, '%Y-%m-%d %h') 在 Presto 中相当于 `day-hour`的主要内容,如果未能解决你的问题,请参考以下文章
mysql DATE_FORMAT(date, format) 函数
MySQL的date_format()和str_to_date()