TIMESTAMPDIFF
TIMESTAMPDIFF
是一个MySQL函数,用于计算两个日期或时间之间的差值。函数返回两个日期或时间之间的差值,并以指定的单位表示。
语法:
TIMESTAMPDIFF(unit, start_date, end_date)
其中:
unit
是计算的单位。可以是以下值:YEAR(年)、QUARTER(季度)、MONTH(月)、DAY(天)、HOUR(小时)、MINUTE(分钟)、SECOND(秒)。start_date
是开始日期或时间。end_date
是结束日期或时间。
示例:
- 计算了两个日期之间的天数差。
SELECT TIMESTAMPDIFF(DAY, '2022-01-01', '2022-02-01') AS day_diff;
CONCAT
CONCAT函数是MySQL中用来连接多个字符串的函数。它可以将两个或多个字符串拼接在一起,并返回拼接后的结果。
语法:
concat(str1, str2,...)
其中:
- 返回结果为连接参数产生的字符串
- 如果有任何一个参数为null,则返回值为null。
示例:
SELECT CONCAT('Hello', ' ', 'World');
输出:Hello World
round
-round函数是一个常用的四舍五入函数。它可以用于对浮点数进行取整运算。
它有两种常用的用法:
- 一种是只传入一个参数,即要进行取整的浮点数值;
- 另一种是传入两个参数,第一个参数是要进行取整的浮点数值,第二个参数是精确到小数点后几位,默认为0。
语法:
SELECT ROUND(column_name,decimals) FROM [表名];
其中:
- column_name: 要舍入的字段,必需
- decimals: 规定要返回的小数位数,可选
示例:
- ROUND(X): 返回’参数X’四舍五入的一个整数
SELECT ROUND(1.58);
查询结果:2
- ROUND(X,D): 返回’参数X’四舍五入的有 D位小数的一个数字。
- 如果D为0,结果将没有小数点或小数部分;
- 如果D为负数,这时是指定小数点左边的D位整数位为0,同时小数位均为0
SELECT ROUND(1123.26723,1);
SELECT ROUND(1123.26723,0);
SELECT ROUND(1123.26723,-1);
查询结果:
- 1123.3
- 1123
- 1120
IF
MySQL的IF函数是一个流程控制函数,可以根据条件的真假返回不同的值。
语法:
IF(condition, value_if_true, value_if_false)
其中:
- condition:要进行判断的条件表达式或值。
- value_if_true:如果条件为真,将返回的值。
- value_if_false:如果条件为假,将返回的值。
示例:
- 这个查询将返回一个结果集,包含name、age、gender和is_adult字段。如果age大于等于18,则is_adult字段的值为’成年’,否则为’未成年’。
SELECT name, age, gender, IF(age >= 18, '成年', '未成年') AS is_adult
FROM student;
CASE WHEN
CASE WHEN语句是一种条件表达式,用于在SQL查询中根据不同的条件选择不同的结果。
语法:
CASE WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE resultN
END
其中:
- condition1、condition2等是条件表达式,可以是列与值之间的比较、逻辑运算符的组合等。
- result1、result2等是在条件满足时返回的结果,可以是常量、列名、表达式等。
- ELSE子句是可选的,用于指定当所有条件不满足时返回的默认结果。
示例:
- 这个查询会从名为"students"的表中选择姓名(name)和年龄(age)列,并使用CASE WHEN语句根据不同的年龄段给每个人分组。如果年龄小于18岁,则分到"未成年"组;如果年龄在18到60岁之间,则分到"成年"组;否则分到"老年"组。然后,将每个人的分组结果作为新的列"age_group"返回。
SELECT name, age,
CASE
WHEN age < 18 THEN '未成年'
WHEN age >= 18 AND age < 60 THEN '成年'
ELSE '老年'
END AS age_group
FROM students;
DATE(date)
返回指定日期/时间表达式的日期部分或将文本转为日期格式
语法:
DATE(date)
示例:
select date('2022-4-15 12:30:48');
结果:2022-04-15
date_formate
date_format是一种用于格式化日期的函数,可以将日期按照指定的格式进行显示。
语法:
date_format('date', '格式');
在format字符串中可用标志符:
- %M 月,名字(january……december)
- %Y 年, 数字, 4 位
- %y 年, 数字, 2 位
- %a 缩写的星期名字(sun……sat)
- %d 月份中的天数, 数字(00……31)
- %e 月份中的天数, 数字(0……31)
- %m 月, 数字(01……12)
- %c 月, 数字(1……12)
- %b 缩写的月份名字(jan……dec)
- %j 一年中的天数(001……366)
- %h 十二时制的小时(00……12)
- %k 二十四时制的小时(0……23)
- %i 分钟, 数字(00……59)
- %r 时间,12 小时(hh:mm:ss [ap]m)
- %s 秒(00……59) %p am或pm
- %w 一个星期中的天数(0=sunday ……6=saturday )
- %u 一年中的周数(1……53)
示例:
select date_format('2022-4-15 13:30:28','%Y-%m-%d');
结果:2022-04-15