sql的内置函数

116 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第二十六天,点击查看活动详情

在日常的编写SQL中,我们都会遇到一些自以为很简单实际却又不怎么熟练的内置函数,虽然我们不一定都用的 上,但是要用上的时候我们得知道。为了记录最近遇到的坑,决定把它以场景模式记录下来,方便日后使用,也是 一次记忆的加深

当你sql查询出来的字段没有值,或者为null时,做数据分析时,这些个为null的字段会造成很大的困扰,所以我们需 要给可能出现null的字段添加一个默认值,这个时候SQL的内置函数IFNULL()与COALESCE()就能很好的满足我们 的需求

IFNULL()函数

作用:IFNULL()函数用于判断第一个表达式是否为NULL,如果为NULL则返回第二个参数的值,如果不为NULL 则返回第一个参数的值。

语法:

IFNULL(expression, alt_value)

当你的数据需要查询当天的值时,我们需要设置一个实时变化的值,那么内置函数NOW()就可以满足,配合上DAT E_FORMAT()就能获取对应格式的当天日期。还有一个curdate(也能返回当前日期

NOW()函数

作用:NOW()函数返回当前系统的日期和时间。

语法:

SELECT  NOW  FROM  table_name;

FORMAT()函数

作用:FORMAT()函数用于对字段的显示进行格式化。

语法:

SELECT  FORMAT(column_name,format)  FROM  table_name:

curdate()函数:

作用:CURDATE()返回当前的日期。

语法:selectCURDATE()

DATE_SUB()函数:

作用:从日期减去指定的时间间隔。

语法:DATE_SUB(date,INTERVALexpr type)

date参数是合法的日期表达式。INTERVAL是固定参数,expr参数是您希望添加的时间间隔。type参数有(SECO ND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTEER, YEAR)

动态查询近7天的数据的SQL如下

Select  from  table  where  Time >=DATE_SUB (curdate(), INTERVAL  DAY)  and  Time  <=DATE_SUB(curdate(),  INTERVAL  6   DAY)  and  Time  <=DATE_SUB(curdate(), INTERVAL 0 DAY)

CILE(x)函数:

作用:返回大于或等于x的最小整数。

语法:SELECT CEIL(1.5)--返回2

ABS(x)函数:

作用:返回x的绝对值

语法:SELECT ABS(-1)--返回1