Prestodb 日期和事件函数大全

Catalogue
  1. 1. 日期和时间操作
  2. 2. 当前日期、时间函数
  3. 3. 格式转换
    1. 3.1. 日期维度函数
  4. 4. 时间函数
    1. 4.1. 时间格式转换
    2. 4.2. 时间加/减

在工作中, 我们会用到很多日期和时间处理的函数, 这里我们为了方便, 来做一个使用总结, 不用每次都去查Google。

日期和时间操作

操作符 示例 结果
+ date ‘2012-08-08’ + interval ‘2’ day 2012-08-10
+ time ‘01:00’ + interval ‘3’ hour 04:00:00.000
+ timestamp ‘2012-08-08 01:00’ + interval ‘29’ hour 2012-08-09 06:00:00.000
+ timestamp ‘2012-10-31 01:00’ + interval ‘1’ month 2012-11-30 01:00:00.000
+ interval ‘2’ day + interval ‘3’ hour 2 03:00:00.000
+ interval ‘3’ year + interval ‘5’ month 3-5
- date ‘2012-08-08’ - interval ‘2’ day 2012-08-06
- time ‘01:00’ - interval ‘3’ hour 22:00:00.000
- timestamp ‘2012-08-08 01:00’ - interval ‘29’ hour 2012-08-06 20:00:00.000
- timestamp ‘2012-10-31 01:00’ - interval ‘1’ month 2012-09-30 01:00:00.000
- interval ‘2’ day - interval ‘3’ hour 1 21:00:00.000
- interval ‘3’ year - interval ‘5’ month 2-7

当前日期、时间函数

  • current_date -> date
    返回当前日期。

    1
    2
    select current_date
    -- 2021-01-17
  • current_time -> time
    返回当前时间(含时区)。

    1
    2
    3
    4
    select current_time
    -- 23:52:04.371 Asia/Shanghai
    -- 这个结果看起来有点问题, 因为我执行该条命令的真实时间为 15:52:04.371 Asia/Shanghai
    -- 可能是公司的Presto的时区设置有问题
  • current_timestamp -> timestamp
    返回当前的日期和时间(含时区)。

    1
    2
    3
    select current_timestamp
    -- 2021-01-17 15:44:43.041 Asia/Shanghai
    -- 和上面的比, 这条就正常了
  • current_timezone() -> varchar
    返回当前时区。

    1
    2
    select current_timestamp
    -- Asia/Shanghai
  • now() -> timestamp
    返回当前的日期和时间(含时区)。

    1
    2
    select now()
    -- 2021-01-17 15:44:43.041 Asia/Shanghai
  • localtime -> time
    返回当前的时间

    1
    2
    3
    select localtime
    -- 23:52:04.371
    -- 遇到了和 current_time 一样的问题
  • localtimestamp -> timestamp
    返回当前的日期和时间

    1
    2
    select localtimestamp
    -- 2021-01-17 15:52:04.371

格式转换

  • date(x) -> date
    1
    select date('2012-08-10')

等价于 CAST(x AS date)。x 的两侧有空格 或者 x=’2012-8-10’ 都是可以正常转换的。

日期维度函数

  1. 按年

  2. 按月

  3. 按季度

  4. 按周

  5. 按天

时间函数

时间格式转换

时间加/减