ClickHouce formatDateTime() 函数

有时,我们需要将常规的时间格式转换为特定业务场景或者特定格式的时间表示格式,那我们可以使用formatDateTime()函数来实现

简单介绍下:

formatDateTime()
解析:函数根据给定的格式字符串来格式化时间。请注意:格式字符串必须是常量表达式,例如:单个结果列不能有多种格式字符串
语法:formatDateTime(Time, Format [, Timezone])
返回值:根据指定格式返回的日期和时间
 

小示列:

select
  formatDateTime(toDate('2020-01-04'), '%D') as date
, formatDateTime(toDate('2020-01-04'), '%F')  as date_1
, formatDateTime(toDate('2021-05-13'), '%Y-%m-%d') as date_2
, formatDateTime(toDate('2021-05-13'), '%Y-%m')    as year_month;

select
  formatDateTime(toDateTime('2021-01-13 21:12:13'),'%Y-%m-%d %R:%S')        format_1-- %R24小时HH:MM时间,相当于%H:%M
, formatDateTime(toDateTime('2021-01-13 21:12:13'),'%Y-%m-%d %H:%M:%S')     format_2-- %H 24小时格式(00-23)
, formatDateTime(toDateTime('2021-01-13 21:12:13'),'%Y-%m-%d %I:%M:%S')     format_3-- %I 小时12h格式(01-12)
, formatDateTime(toDateTime('2021-01-13 21:12:13'),'%Y-%m-%d %p %I:%M:%S')  format_4;        -- %p 指定AM或PM

支持的格式修饰符如下: 

修饰符描述示例
%C年除以100并截断为整数(00-99)20
%d月中的一天,零填充(01-31)02
%D短MM/DD/YY日期,相当于%m/%d/%y01/02/2018
%e月中的一天,空格填充(1-31)2
%F短YYYY-MM-DD日期,相当于%Y-%m-%d2018-01-02
%GISO周号的四位数年份格式, 从基于周的年份由ISO 8601定义 标准计算得出,通常仅对%V有用2018
%g两位数的年份格式,与ISO 8601一致,四位数表示法的缩写18
%H24小时格式(00-23)22
%I小时12h格式(01-12)10
%j一年(001-366)002
%m月份为十进制数(01-12)01
%M分钟(00-59)33
%n换行符(") 
%pAM或PM指定PM
%R24小时HH:MM时间,相当于%H:%M22:33
%S分钟(00-59)44
%t水平制表符(’) 
%TISO8601时间格式(HH:MM:SS),相当于%H:%M:%S22:33:44
%uISO8601平日as编号,星期一为1(1-7)2
%VISO8601周编号(01-53)01
%w周日为十进制数,周日为0(0-6)2
%y年份,最后两位数字(00-99)18
%Y2018
%%%符号%

参考:https://clickhouse.tech/docs/en/sql-reference/functions/date-time-functions/#formatdatetime

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值