SQL函数

记录一个比较详尽的网址 (opens new window)

# 字符串处理

# FIND_IN_SET(string, string_list)

返回指定字符串在以逗号分隔的字符串列表中的位置

  • 如果其中一个参数为NULL,则返回NULL

  • 如果string_list为空字符串,返回0

  • 如果string_list中没有string(逗号分隔的完整字符串),返回0

  • 否则返回string在字符串列表中第一次出现的次序

# LOCATE(substring, string, start)

LOCATE()函数返回字符串string中第一次出现的子字符串substring的位置,参数start可选,搜索的起始位置。位置1是默认值。

如果在原始字符串中找不到子字符串,则此函数返回0。

此函数执行不区分大小写的搜索。

此功能等于POSITION()函数。

# SUBSTRING_INDEX(str, delim, count)

# 参数

  • str 必需的。原字符串。
  • delim 必需的。在原字符串中搜索的分隔符。
  • count 必需的。分隔符出现的次数。如果 count 为负数,则从字符串尾部向前开始计数分隔符,返回分隔符之后的子字符串。

# 返回值

函数返回一个字符串中指定分隔符出现在指定次数之前的子字符串。

  1. 如果参数 count 等于 0, SUBSTRING_INDEX() 函数返回一个空字符串 '';
  2. 如果参数 count 为负数时, 则从字符串尾部向前开始计数分隔符,返回分隔符之后的子字符串。
  3. 如果任意一个参数为 NULL 时, SUBSTRING_INDEX() 函数将返回 NULL。

参考链接 (opens new window)

# JSON处理

# JSON_EXTRACT(json, path, ...)

# 参数

  1. json 必需的。一个 JSON 文档。
  2. path 必需的。您应该至少指定一个路径表达式。

# 返回值

返回 JSON 文档中由路径表达式匹配的所有的值。如果路径表达式匹配了一个值,则返回该值,如果路径表达式匹配了多个值,则返回一个包含了所有值的数组。

参考链接 (opens new window)

# 日期

# 转换

# datetime转字符串

DATE_FORMAT(updated_at,'%Y-%m-%d %H:%i') AS 'time'

DATE_FORMAT(updated_at, '%Y年%m月') AS timeGroup
1
2
3

format 中可采用的格式化符号 (opens new window)

比较常用的:

符号 说明
%Y 四位数字年份
%y 两位数字年份
%M 月份名称 (January..December)
%m 两位数字月份 (00..12)
%D 带有英语前缀的月份中的每天 (0th, 1st, 2nd, 3rd, …)
%d 月份中的每天的两位数字表示 (00..31)
%H 小时 (00..23)
%h 小时 (01..12)
%I 小时 (01..12)
%i 分钟 (00..59)
%S 秒 (00..59)
%s 秒 (00..59)

# 时间戳转字符串

FROM_UNIXTIME(unix_timestamp[, format])

返回Unix时间标记的一个字符串,根据format格式化。如果format为空默认会使用%Y-%m-%d %H:%i:%s的格式

# datetime转时间戳

UNIX_TIMESTAMP(CURRENT_TIMESTAMP())

# datetime转date

date(CURRENT_TIMESTAMP())

# 获取时间

# 当前时间

  • curdate()
  • curtime()
  • CURRENT_TIMESTAMP()
  • now()

# 时间计算

# 增减

DATE_ADD(date, INTERVAL value unit)

例如:

-- 明天
DATE_SUB(curdate(),INTERVAL -1 DAY)
-- 昨天
DATE_SUB(curdate(),INTERVAL 1 DAY)
-- 前一小时
date_sub(now(), interval 1 hour)
-- 前30分钟
date_add(now(),interval -30 minute)
1
2
3
4
5
6
7
8

unit常用值有: MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR等等。

# 间隔

TIMESTAMPDIFF(unit, datetime1, datetime2)

返回两个日期之间的间隔(前者减后者)

unit可用值有: MICROSECOND, SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR.

# 其他函数

# CAST()

CAST(expr AS data_type) 等同于 CONVERT(expr, type)

CAST()函数将任何类型的值转换为具有指定类型的值。目标类型可以是以下类型之一:BINARYCHARDATEDATETIMETIMEDECIMALSIGNEDUNSIGNED

上次更新: 2023/06/28, 10:38:27
最近更新
01
go-admin-ui项目仿写练手1-登录页
06-29
02
maven依赖问题
06-17
03
JVM相关命令
02-21
更多文章>