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函数用法

mysql DATE_FORMAT(date, format) 函数

MySQL的date_format()和str_to_date()

MySQL的date_format()和str_to_date()

mysql date_format()函数

HGDB兼容MySQL date_format函数