文本处理
转化为大写:
select vend_name, Upper(vend_name) AS vend_name_upcase
from vendors
order by vend_name
结果:
vend_name | vend_name_upcase |
Anviles | ANVILES |
Jet | JET |
常用处理函数(用法和upper()函数相同):
Length() | 串的长度 |
Lower() | 串为小写 |
LTrim() | 去掉左侧空格 |
RTrim() | 去掉右侧空格 |
Upper() | 串的大写 |
日期处理
一般写的时候查找日期的sql是这么写的:
select cust_id, order_num
from orders
where order_date = '2005-09-01'
这样虽然可以,但是如果roder_date数据类型是datetime的,存储的时间为:2005-09-01 11:30:05 则这种方法便不行了,查询不到。
可以这样处理:
select cus_id, order_num
from orders
where Date(order_date) = '2005-09-01'
这样就可以比较datetime类型的date部分,可以返回正确结果。
还有其他函数,使用与Date()函数相似:
AddDate() | 增加一个日期 |
AddTime() | 增加一个时间 |
CurDate() | 当前日期 |
CurTime() | 当前时间 |
Date() | 返回日期的日期部分 |
Time() | 返回日期的时间部分 |
Year() | 返回日期的年份 |
Mouth() | 返回日期的月份 |
Day() | 返回日期的天数 |
DayOfWeek() | 返回日期的星期几 |
Hour() | 返回时间的小时 |
Minute() | 返回时间的分钟 |
Second() | 返回时间的秒 |
DateDiff() | 计算两个日期的差值 |
Now() | 当前日期和时间 |
Date_Format() | 格式化日期或时间串 |
Date_Add() | (没用过,应该是日期相加) |
举例:
检索9月份数据:
select cust_id, order_num
from orders
where Date(order_date) between '2005-09-01' and '2005-09-30'
更好的写法如下:
select cust_id, order_num
from orders
where Year(order_date) = 2005 and Month(order_date) = 9
参考资料:《MySql必知必会》