《日常笔记--数据库函数》

1、WITH子句

        WITH语句可用来创建一个临时表存储查询的结果集。这个结果集可以在后续的查询中被引用;WITH子句可以在一个SQL语句中定义一个或者多个临时表的查询结果集,然后在后续的查询中使用这些结果集。

WITH Temp AS(.....)//创建一个名为Temp的临时表存储查询结果集;后续查询可直接引用Temp表即可

2、日期函数EXTRACT

extract函数的语法:extract(关键字 from 日期或者时间类型的字段);如下:

select extract(year from timekey) from temp 在timekey字段中提取年份
select extract(month from timekey) from temp 在timekey字段中提取月份
select extract(day from timekey) from temp 在timekey字段中提取日
select extract(hour from timekey) from temp 在timekey字段中提取时
select extract(minute from timekey) from temp 在timekey字段中提取分
select extract(second from timekey) from temp 在timekey字段中提取秒

3、LAG函数(窗口函数)

LAG函数是获取指定列在当前行指定偏移量前的数值;语法如下:

LAG(expression, offset, default) OVER (PARTITION BY fkhi.fk_id, fkhi.fk_ai_id ORDER BY timekey_hour)

expression:是要获取值的列,即要检索的列或表达式;在相对于当前行的偏移量offset的前一行的值。

offset:是偏移量,表示向前移动几行,即需要返回的行数,如过不指定,返回默认行。

default:是可选参数,表示当偏移后的值为空时使用默认值。

PARTITION BY :子句按照指定的列进行分区,然后再每个分区中进行窗口函数的计算。

OREDR BY :子句指定按照哪个列进行排序。

4、LEAD函数(窗口函数)

LEAD函数是获取指定列在当前行指定偏移量后的数值;语法如下:

LAG(expression, offset, default) OVER (PARTITION BY fkhi.fk_id, fkhi.fk_ai_id ORDER BY timekey_hour)

expression:是要获取值的列,即要检索的列或表达式;在相对于当前行的偏移量offset的后一行的值。

offset:是偏移量,表示向后移动几行,默认为1,如过不指定,返回默认行。

default:可选参数,表示当偏移后的值为空时使用的默认值。

PARTITION BY :子句按照指定的列进行分区,然后再每个分区中进行窗口函数的计算。

OREDR BY :子句指定按照哪个列进行排序。

5、OVER关键字

over是一个窗口函数中的子句,它用于指定窗口的分区方式和排序方式。通常与其它窗口函数一起使用,以定义计算窗口函数的范围。

6、DISTINCT关键字

当使用select语句时,可以在字段中使用distinct关键字来标识需要进行去重的操作。这样查询结果中将只包含唯一的,不重复的值。列如:

SELECT DISTINCT timekey from temp

执行上述语句后,将返回去重后不重复的时间列表。

需要注意的是,DISTINCT关键字作用于所有指定的字段,即返回的结果将根据所有指定的字段组合进行去重,如果只想要根据某个字段去重,应该只在该字段上应用DISTINCT。

7、CAST函数

CAST函数的基本语法如下:

CAST(group_min_value AS VARCHAR)

group_min_value : 需要转换的表达式

VARCHAR : 转换后的目标数据类型

8、DATE_FORMAT函数 和 NOW()函数

DATE_FORMAT()函数用于将指定的日期格式化为给定的格式。 比如给出一个日期,该函数将该日期格式化为指定的格式参数;

语法如下:(接收两个参数,一个需要格式化的日期参数,一个需要格式化为指定日期格式的参数)

DATE_FORMAT(date,format)

//如下所示:

DATE_FORMAT(timekey,%Y-%m-%d)//把timekey字段格式化为年月日的格式

NOW函数是获取当前时间的,默认格式为 年月日时分秒

9、UNIX_TIMESTAMP() 函数 和 FROM_UNIXTIME() 函数

UNIX_TIMESTAMP()//用于获取时间的时间戳格式。

FROM_UNIXTIME()//用于格式化时间戳,使用方法和DATE_FORMAT()一致。
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y-%m-%d');
	
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s')//YYYY-mm-dd HH:ii:ss 年月日时分秒
SELECT DATE_FORMAT("2024-02-11", "%Y")//获取年份
select UNIX_TIMESTAMP("2024-02-20 11:20:30");//获取指定时间的时间戳

10、tochat函数

        TO_CHAR函数是SQL中的一个字符串转换函数,它用来将数值,日期和时间类型的数据转换为字符类型的数据。

基本语法:

TO_CHAR(表达式,格式模板)

参数说明:

- 表达式:需要转换字符类型的数据。

- 格式模板:指定转换后的字符类型数据的格式。可

常用的格式模板:

- 'YYYY-MM-DD':将日期类型转换为年-月-日的格式。

- 'HH24:MI:SS':将时间类型转换为小时:分钟:秒的格式。

- 'YYYY-MM-DD HH24:MI:SS':将日期时间类型转换为年-月-日 小时:分钟:秒的格式。

示例:

1. 将日期类型字段转换为字符类型:

SELECT TO_CHAR(hire_date, 'YYYY-MM-DD') FROM emp;

2. 将时间类型字段转换为字符类型:

SELECT TO_CHAR(start_time, 'HH24:MI:SS') FROM emp;

3. 将日期时间类型字段转换为字符类型:

SELECT TO_CHAR(create_time, 'YYYY-MM-DD HH24:MI:SS') FROM emp;

11、DATE_TRUNC函数

date_trunc函数是PostgreSQL中对日期时间进行截取的一个函数。它是PostgreSQL中常用的一个日期时间处理函数。主要作用是对日期的格式进行截取,确保指定的日期时间单位, 并把其它本分设置为0;

基本语法:

date_trunc(time,file)

参数说明:
time:  time表示需要截取或者保留的日期时间单位;可以使用以下实参:

microseconds 或 usec:微秒 milliseconds 或 msec:毫秒 second 或 sec:秒 minute 或 min:分 hour 或 hr:小时 day:日 week:周(从周日开始) month:月 quarter:季度 year 或 yyyy:年

file :表示需要进行截取或者保留的日期时间字段,可以是Timestamp、DateTime、Date类型的数据。比如以下sql:

DATE_TRUNC('hour', fkhi.timekey) as timekey_hour

 在上述这个查询语句中,将时间戳截断为小时级别,该语句会输出timekey字段中的日期;并保留小时部份,小时部分之后的会设为0;以便后续的分组和聚合操作。

12、ABS函数

ABS函数是要给SQL算数函数。作用是求绝对值。

SQL ABS函数语法:

ABS(expression) //expression代表是一种数值或者数据类型的表达式。

列如:

SELECT ABS(-123.35) FROM A;

//输出的结果为:123.35

13、SQL RADIANS()函数

RADIANS()函数作用是把角度转换为弧度并返回弧度的值。

RADIANS()函数的语法:(详细可查看更多相关文章)

//语法:
SELECT RADIANS(numeric expression) AS a;
//数字表达式是以弧度指定的角度。除了位置类型之外,它可以是精确值或近似数值数据类型的表达式

SELECT RADIANS(column_name) AS a FROM table_name; //从表中获取数据

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值