COALESCE(可变参数),返回从左侧数第一个不为NULL的值;如下代码清单就实现了将列中的NULL值转化为其他值的功能。
SELECT COALESCE (Product.regist_date, 'NULL') AS NON_NULL FROM Product;
CAST(expr AS type),将expr转换为指定类型,这里面有一个坑,就是type只能限定如下类型可以使用(不能想当然的以为支持所有数据类型):
BINARY[(N)] CHAR[(N)] DATE TIME DATETIME DECIMAL SIGNED [INTEGER] UNSIGNED [INTEGER]
/* 将字符串转化为DECIMAL类型 */ SELECT cast('221.6666' AS DECIMAL(5,2)) AS oo FROM Product
CURRENT_DATE返回SQL执行的日期;CURRENT_TIME返回SQL执行的时间;CURRENT_TIMESTAMP返回SQL执行的日期和时间。
SELECT CURRENT_DATE AS date, CURRENT_TIME AS time, CURRENT_TIMESTAMP AS stamp;
EXTRACT函数用来截取日期中数据的一部分:
SELECT CURRENT_TIMESTAMP, EXTRACT(YEAR FROM CURRENT_TIMESTAMP) AS YEAR, EXTRACT(MONTH FROM CURRENT_TIMESTAMP) AS MONTH, EXTRACT(DAY FROM CURRENT_TIMESTAMP) AS DAY, EXTRACT(HOUR FROM CURRENT_TIMESTAMP) AS HOUR, EXTRACT(MINUTE FROM CURRENT_TIMESTAMP) AS MINUTE, EXTRACT(SECOND FROM CURRENT_TIMESTAMP) AS SECOND;
MySql常用日期函数汇总:
ADDDATE('2018-01-01',32);参数一日期,参数二是天数 ADDTIME('2018-01-01 12:30:15.222222','1 1:1:1.000002');expr1 是一个时间或日期时间表达式 ,expr2是一个时间表达式 DATEDIFF(expr1,expr2) 计算两个日期差 DAYOFWEEK(date)对于一个日期返回是星期几 DATE()提取日期部分 TIME提取时间部分
SELECT LEFT('abcd',2);-- 返回左边的两个字符 SELECT LENGTH('abcd');-- 返回串的长度 select LOCATE('b','abcd');-- 返回串的一个子串位置; SELECT LOWER('Abcd');-- 转化为小写 SELECT LTRIM(' bbb'); -- 去掉左边的空格 -- SOUNDEX(str); -- 返回soundex值 SELECT SUBSTRING('abdfg',3,3); -- 返回子串,从第三个位置长度为三的子串
SOUNDEX()函数是一个将任何文本串转换为描述语音表示的字母模式的算法。它考虑了类似于发音字符和字节,能够对文本发音进行比较而不是字母比较。如果库中存在一名名为Y.LEE的客户而搜索的时候的输入错误,下面的第一种sql是不会有任何返回结果的,而使用SOUNDEX值匹配可以得出正确结果:
SELECT CUSTOMER_NAME FROM CUSTOMER WHERE CUSTOMER_NAME = 'Y LEE' SELECT CUSTOMER_NAME FROM CUSTOMER WHERE SOUNDEX(CUSTOMER_NAME) =SOUNDEX('Y LEE')
+-*/都是可以进行简单的算数运算,它们是最基本的函数。常用算数函数:
本文系作者在时代Java发表,未经许可,不得转载。
如有侵权,请联系nowjava@qq.com删除。