1:时间日期函数
toYear():获取日期或时间日期的年份
toQuarter():获取时间日期的季度
toMonth():取日期或时间日期的月份
toDayOfMonth():获取日期或时间日期的天(1-31)
toDayOfWeek():获取日期或时间日期的星期数值(1-7)
toHour():获取时间日期的时
toMinute():获取时间日期的分
toSecond():获取时间日期的秒
select toYear(now()),toQuarter(now()),toMonth(now()),toDayOfMonth(now()),toDayOfWeek(now()),toHour(now()),toMinute(now()),toSecond(now())
SELECT
toYear(now()),
toQuarter(now()),
toMonth(now()),
toDayOfMonth(now()),
toDayOfWeek(now()),
toHour(now()),
toMinute(now()),
toSecond(now())
Query id: 147dad02-8e05-4cff-a8bd-f89331f46f3e
┌─toYear(now())─┬─toQuarter(now())─┬─toMonth(now())─┬─toDayOfMonth(now())─┬─toDayOfWeek(now())─┬─toHour(now())─┬─toMinute(now())─┬─toSecond(now())─┐
│ 2022 │ 1 │ 3 │ 4 │ 5 │ 12 │ 11 │ 42 │
└───────────────┴──────────────────┴────────────────┴─────────────────────┴────────────────────┴───────────────┴─────────────────┴─────────────────┘
2:常用的时间转换函数
toDate():将字符日期或时间戳转化为日期
toDateTime() :将字符时间戳转化为时间戳
select now(),toDate(1509836867),toDate('2017-11-05 08:07:47'),toDateTime(1509836867),toDateTime('2017-11-05 08:07:47')
SELECT
now(),
toDate(1509836867),
toDate('2017-11-05 08:07:47'),
toDateTime(1509836867),
toDateTime('2017-11-05 08:07:47')
Query id: aa5b05b7-63db-47da-b9f1-42c092c25564
┌───────────────now()─┬─toDate(1509836867)─┬─toDate('2017-11-05 08:07:47')─┬─toDateTime(1509836867)─┬─toDateTime('2017-11-05 08:07:47')─┐
│ 2022-03-04 12:21:20 │ 2017-11-05 │ 2017-11-05 │ 2017-11-05 07:07:47 │ 2017-11-05 08:07:47 │
└─────────────────────┴────────────────────┴───────────────────────────────┴────────────────────────┴───────────────────────────────────┘
3:常用的时间戳格式转换函数
formatDateTime:函数根据给定的格式字符串来格式化时间。(请注意:格式字符串必须是常量表达式)
支持的格式修饰符如下:
修饰符 | 描述 | 示例
---|---|---
修饰符|描述|示例
%C|年除以100并截断为整数(00-99)|20
%d|月中的一天,零填充(01-31)|02
%D|短MM/DD/YY日期,相当于%m/%d/%y|01/02/2018
%e|月中的一天,空格填充( 1-31)|2
%F|短YYYY-MM-DD日期,相当于%Y-%m-%d|2018-01-02
%G|ISO周号的四位数年份格式, 从基于周的年份由ISO 8601定义 标准计算得出,通常仅对%V有用|2018
%g|两位数的年份格式,与ISO 8601一致,四位数表示法的缩写|18
%H|24小时格式(00-23)|22
%I|12小时格式(01-12)|10
%j|一年中的一天 (001-366)|002
%m|月份为十进制数(01-12)|01
%M|分钟(00-59)|33
%n|换行符(")|
%p|AM或PM指定|PM
%Q|季度(1-4)|1
%R|24小时HH:MM时间,相当于%H:%M|22:33
%S|秒 (00-59)|44
%t|水平制表符(’)|
%T|ISO8601时间格式(HH:MM:SS),相当于%H:%M:%S|22:33:44
%u|ISO8601工作日为数字,星期一为1(1-7)|2
%V|ISO8601周编号(01-53)|01
%w|工作日为十进制数,周日为0(0-6)|2
%y|年份,最后两位数字(00-99)|18
%Y|年|2018
%%|%符号|%
SELECT formatDateTime(now(), '%Y-%m-%d')
Query id: 7f3896f7-731b-4c35-99e4-21bb06a8c0df
┌─formatDateTime(now(), '%Y-%m-%d')─┐
│ 2022-03-04 │
└───────────────────────────────────┘
4:生成日期、时间戳
now() :生成当前时间戳
today():生成当前日期
yesterday():生成当前日期的前一天
SELECT
now(),
today(),
yesterday()
Query id: fb9436d2-9f16-43d4-81d8-03d213374879
┌───────────────now()─┬────today()─┬─yesterday()─┐
│ 2022-03-04 13:23:20 │ 2022-03-04 │ 2022-03-03 │
└─────────────────────┴────────────┴─────────────┘