Open chengfengjie opened 6 years ago
ABS(x)
: 返回x的绝对值CEIL(x)
: 返回大于x的最小整数FLOOR(x)
: 返回小于x的最小整数MOD(x, y)
: 返回x/y的模RAND()
: 返回0~1内的随机值ROUND(x, y)
: 返回参数x的四舍五入的有y位小数的值TRUNCATE(x, y)
: 返回数字x截断为y位小数的结果CURDATE()
和CURRENT_DATE()
: 返回当前日期CURTIME()
和CURRENT_TIME()
: 返回当前时间NOW()
和CURRENT_TIMESTAMP()
: 返回当前的日期和时间UNIX_TIMESTAMP(date)
: 返回时间的UNIX时间戳,可以不带参数,返回当前UNIX时间戳FROM_UNIXTIME(timestamp)
: 返回UNIX时间戳的日期值WEEK(date)
: 返回日期date为一年中的第几周YEAR(date)
: 返回日期date的年份HOUR(date)
: 返回日期date的小时MINUTE(date)
: 返回日期date的分钟MONTHNAME(date)
: 返回月份名称,英文DATE_FORMAT(date, fmt)
: 按照字符串fmt格式化日期date的值,此函数能够按照指定的格式显示日期,例子:
DATE_FORMAT(CURRENT_TIMESTAMP(),'%Y年%m月%d日 %H时%i分%s秒')
DATE_ADD(date, OMTERVAL expr type)
: 返回与所给日期date相差INTERVAL时间段的日期,其中INTERVAL是间隔类型关键字, expr是一个表达式, 这个表达式对应后面的类型,type是间隔类型, mysql提供了13中间隔类型如下:
HOUR
: 小时MINUTE
: 分钟SECOND
: 秒YEAR
: 年MONTH
: 月DAY
: 天YEAR_MONTH
: 年和月DAY_HOUR
: 日和小时DAY_MINUTE
: 日和分钟DAY_SECOND
: 日和秒HOUR_MINUTE
: 小时和分HOUR_SECOND
: 小时和秒MINUTE_SECOND
: 分钟和秒
例子:
SELECT
DATE_ADD(NOW(),INTERVAL 1 HOUR),
DATE_ADD(NOW(),INTERVAL '1-1' YEAR_MONTH),
DATE_ADD(NOW(),INTERVAL '1 1' DAY_HOUR),
DATE_ADD(NOW(),INTERVAL '1 1:00' DAY_MINUTE),
DATE_ADD(NOW(),INTERVAL '1 1:10:30' DAY_SECOND),
DATE_ADD(NOW(),INTERVAL '24:00' HOUR_MINUTE)
流程函数是很常用的一类函数,用户可以使用这类函数在一个SQL语句中实现条件选择,这样做能提高语句效率。
IF(value, t, f)
: 如果value为真,返回t,否则返回f,例如
SELECT IF(collaborationType = 0, '未合作', '合作') FROM estate_basicinfo
IFNULL(value1, value2)
: 如果value1不为空,返回value1,否则返回value2
SELECT IFNULL(isTop,0) AS isTop FROM estate_basicinfo
CASE WHEN [value1] THEN [result1] ... ELSE [default] END
: 如果value1为真,返回result1,否则返回default
SELECT CASE
WHEN estateWeight = 1 THEN '1级'
WHEN estateWeight = 2 THEN '2级'
WHEN estateWeight = 3 THEN '3级'
WHEN estateWeight = 4 THEN '4级'
WHEN estateWeight = 5 THEN '5级'
ELSE '没等级' END AS estateWeight
FROM estate_basicinfo
CASE [expr] WHEN [value1] THEN [result1] ... ELSE [default] END
: 如果expr等于value1,返回result1,否则返回default
SELECT CASE estateWeight
WHEN 1 THEN '1级'
WHEN 2 THEN '2级'
WHEN 3 THEN '3级'
WHEN 4 THEN '4级'
WHEN 5 THEN '5级'
ELSE '没等级' END
FROM estate_basicinfo;
字符串函数
CONCAT(S1,S2,...,Sn)
: 连接S1,S2, ... Sn为一个字符串INSERT(str, x, y, instr)
: 将字符串str从第x位置开始,y长度的子串替换为instrLOWER(str)
: 将字符串str中所有的字符变成小写UPPER(str)
: 将字符串str中所有字符变成大写LEFT(str, x)
: 返回字符串str最左边的x个字符RIGHT(str, x)
: 返回字符串str最右边的x个字符LPAD(str, n, pad)
: 用字符串pad对str最左边进行填充,直到长度为n个字符串长度RPAD(str, n, pad)
: 用字符串pad对str最右边进行填充,知道长度为n个字符串长度LTRIM(str)
: 去掉字符串左侧的空格RTRIM(str)
: 去掉字符串右侧的空格REPEAT(str)
: 返回字符串str重复x次的结果,相当于CONCAT函数拼接x次REPLACE(str, a, b)
: 用字符串b替换str中的所有字符串aSTRCMP(s1, s2)
: 比较字符串s1和s2,用ASCII来比较, 如果s1比s2小,返回-1,如果相等,返回0, 如果s1大于s2,返回1TRIM(str)
: 去掉目标字符串的开头和结尾的空格SUBSTRING(str, x, y)
: 返回从字符串str中的x位置开始y长度的字符串