文本处理
转化为大写:
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必知必会》
本文介绍了SQL中处理文本和日期的各种实用技巧,包括如何将文本转换为大写、小写,获取字符串长度,去除空格等。同时,还详细说明了如何精确地查询日期字段,确保能够正确匹配datetime类型的日期部分。
2222

被折叠的 条评论
为什么被折叠?



