大数据分析——Apache Doris(五十二)

173 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第6天,点击查看活动详情

 TIMESTAMPADD(unit, interval, DATETIME datetime_expr)

将整数表达式间隔添加到日期或日期时间表达式datetime_expr中。

interval的单位由unit参数给出,它应该是下列值之一:

SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, or YEAR。

SELECT TIMESTAMPADD ( MINUTE , 1 , '2020-01-02' );SELECT TIMESTAMPADD ( WEEK , 1 , '2020-01-02' );
 TIMESTAMPDIFF(unit,DATETIME datetime_expr1, DATETIME datetime_expr2)

返回datetime_expr2−datetime_expr1,其中datetime_expr1和datetime_expr2是日期或日期时间表达式。

结果(整数)的单位由unit参数给出。interval的单位由unit参数给出,它应该是下列值之一:

SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, or YEAR

SELECT TIMESTAMPDIFF ( MONTH , '2003-02-01' , '2003-05-01' **);**SELECT TIMESTAMPDIFF ( YEAR , '2002-05-01' , '2001-01-01' );SELECT TIMESTAMPDIFF ( MINUTE , '2003-02-01' , '2003-05-01 12:05:55' );
 TO_DAYS(DATETIME date)

返回date距离0000-01-01的天数

参数为Date或者Datetime类型

select to_days ( '2007-10-07' );****
 UNIX_TIMESTAMP()

将 Date 或者 Datetime 类型转化为 unix 时间戳。

如果没有参数,则是将当前的时间转化为时间戳。

参数需要是 Date 或者 Datetime 类型。

对于在 1970-01-01 00:00:00 之前或 2038-01-19 03:14:07 之后的时间,该函数将返回 0。

Format 的格式请参阅 date_format 函数的格式说明。

该函数受时区影响。

select unix_timestamp **();**select unix_timestamp ( '2007-11-30 10:30:19' **);**select unix_timestamp ( '2007-11-30 10:30-19' ,  '%Y-%m-%d %H:%i-%s' **);**select unix_timestamp ( '2007-11-30 10:30%3A19' ,  '%Y-%m-%d %H:%i%%3A%s' );select unix_timestamp ( '1969-01-01 00:00:00' );
 UTC_TIMESTAMP()

返回当前UTC日期和时间在 "YYYY-MM-DD HH:MM:SS" 或

"YYYYMMDDHHMMSS"格式的一个值

根据该函数是否用在字符串或数字语境中

select utc_timestamp (), utc_timestamp ()   +  1 ;****
 WEEKOFYEAR(DATETIME date)

获得一年中的第几周

参数为Date或者Datetime类型

select utc_timestamp (), utc_timestamp ()   +  1 ;****
 YEAR(DATETIME date)

返回date类型的year部分,范围从1000-9999

参数为Date或者Datetime类型

select year ( '1987-01-01' );****

 

 地理位置函数

 ST_AsText(GEOMETRY geo)

将一个几何图形转化为WKT(Well Known Text)的表示形式

SELECT ST_AsText ( ST_Point ( 24.7 ,  56.7 ));****
 ST_Circle(DOUBLE center_lng, DOUBLE center_lat, DOUBLE radius)

将一个WKT(Well Known Text)转化为地球球面上的一个圆。其中center_lng表示的圆心的经度, center_lat表示的是圆心的纬度,radius表示的是圆的半径,单位是米,最大支持99999994

SELECT ST_AsText ( ST_Circle ( 111 ,  64 ,  10000 ));****