开启掘金成长之旅!这是我参与「掘金日新计划 · 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