1、函数
函数的可移植性不是很强,不同的dbms有不同的函数
2、文本处理函数
函数说明
left()返回串左边的字符
length()返回串的长度
locate()找出串的一个子串
lower()将串转换为小写
ltrim()去掉串左边的空格
right()去掉串右边的空格
rtrim()去掉右边的空格
soundex()返回串的soundex值
substring()返回子串的字符
upper()将串转换为大写
关于soundex()说明
考虑类似发音和类似字节,使串进行发音比较而不是字母比较
?
1
2
select * from `user`
where soundex(`name`)= soundex('lee');
返回值
lie
lee
3、日期处理函数
(1)说明
函数说明
adddate()增加一个日期(天、周等)
addtime()增加一个时间(时、分等)
curdate()返回当前日期
curtime()返回当前时间
date()返回日期时间的日期部分
datediff(expr1,expr2)计算两个日期之差
date_add()高度灵活的日期运算函数
date_format()返回一个格式化的日期或时间串
day()返回一个日期的天数部分
dayofweek()对于一个日期返回对应的星期几
hour()返回一个日期的小时部分
minute()返回一个日期的分钟部分
month()返回一个日期的月份部分
now()返回当前日期和时间
second()返回一个日期的秒部分
time()返回一个日期时间的时间部分
year()返回一个日期的年份部分
(2)查某一天的数据
?
1
2
select order_id from orders
where date(order_date)='2014-04-01'
或者
?
1
2
select order_id from orders
where order_date between'2014-01-01 00:00:000' and '2014-01-01 23:59:59.000'
返回2014-04-01日的订单,注意错误的写法如下,错误原因是一般数据库中的日期都有时分秒,不可能完全等于一个日期
?
1
2
select order_id from orders
where order_date='2014-04-01'
(3)查某个月数据
?
1
2
3
select order_id from orders
where date(order_date) between
'2014-01-01' and '2014-01-31'
或者
?
1
2
3
select order_id from orders
where year(order_date)='2014'
and month(order_date)='01'
4、数值处理函数
函数说明
abs()返回一个数的绝对值
cos()返回一个角度的余弦
exp()返回一个数的指数值
mod()返回除操作的余数
pi()返回圆周率
rand()返回一个随机数
sin()返回一个角度的正弦
sqrt()返回一个数的平方根
tan()返回一个角度的正切
,
