chapter11:使用数据处理函数

函数

  • 函数没有SQL的可移植性强:使用时应该保证做好代码注释。

使用函数

大多数SQL实现支持以下类型的函数:

  • 用于处理文本串的文本函数(如删除或填充值,转换大小写);
  • 用于在数值数据上进行算术操作的数值函数(如返回绝对值);
  • 用于处理日期和时间并从这些值中提取特定成分的日期和时间函数(如返回两个时间之差);
  • 返回DBMS正使用的特殊信息的系统函数(如返回用户登录信息);

文本处理函数

函数 说明
Left()/Right() 返回串左边的字符
Length() 返回串的长度
Locate() 找出串的一个子串
Lower()/Upper() 将串转换为小写
LTrim()/RTrim()/Trim() 去掉串左边的空格
Soundex() 返回串的SOUNDEX值
SubString() 返回子串的字符

SOUNDEX是一个将任何文本串转换为描述其语音表示的字母数字模式的算法,例:customers表中有一个顾客Coyote Inc.,其联系名为Y.Lee。但如果这是输入错误,联系名实际应为Y.Lie,使用Soundex()进行搜索,它匹配所有发音类似于Y.Lie的联系名:

SELECT cust_name, cust_contact
FROM customers
WHERE Soundex(cust_contact) = Soundex('Y.Lie');

日期和时间处理函数

函数 说明
AddDate() 增加一个日期(天、周等)
AddTime() 增加一个事件(时、分等)
CurDate() 返回当前日期
CurTime() 返回当前时间
Date() 返回日期时间的日期部分
DateDiff() 计算两个日期之差
Date_Add() 高度灵活的日期运算函数
Date_Format() 返回一个格式化的日期或时间串
Day() 返回一个日期的天数部分
DayOfWeek() 对于一个日期,返回对应的星期几
Hour() 返回一个时间的小时部分
Minute() 返回一个时间的分钟部分
Month() 返回一个时间的月份部分
Now() 返回当前日期和时间
Second() 返回一个时间的秒部分
Time() 返回一个日期时间的时间部分
Year() 返回一个日期的年份部分

一般,应用程序不使用用来存储日期和时间的格式,因此日期和时间函数总是用来读取、统计和处理这些值。

函数 说明
AddDate() 增加一个日期(天、周等)
AddTime() 增加一个事件(时、分等)
CurDate() 返回当前日期
CurTime() 返回当前时间
Date() 返回日期时间的日期部分
DateDiff() 计算两个日期之差
Date_Add() 高度灵活的日期运算函数
Date_Format() 返回一个格式化的日期或时间串
Day() 返回一个日期的天数部分
DayOfWeek() 对于一个日期,返回对应的星期几
Hour() 返回一个时间的小时部分
Minute() 返回一个时间的分钟部分
Month() 返回一个时间的月份部分
Now() 返回当前日期和时间
Second() 返回一个时间的秒部分
Time() 返回一个日期时间的时间部分
Year() 返回一个日期的年份部分
SELECT cust_id, order_num
FROM orders
WHERE Date(order_date) BETWEEN '2005-09-01' AND '2005-09-30';

数值处理函数

函数 说明
Abs() 绝对值
Cos() 余弦
Exp() 指数值
Mod() 余数
Pi() 圆周率
Rand() 随机数
Sin() 正弦
Sqrt() 平方根
Tan() 正切
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,751评论 0 4
  • PHP常用函数大全 usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解...
    上街买菜丶迷倒老太阅读 1,540评论 0 20
  • php usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解包。 uni...
    思梦PHP阅读 2,174评论 1 24
  • 2017年伦敦世锦赛百米决赛上,博尔特终于输了,美国人加特林以0.03秒的微弱优势让博尔特的谢幕之战显得不...
    啸天下阅读 1,107评论 0 4
  • 虽然把t4看成t3,多了点波折,但还是正常到达,第一次学会用会员换票,第一次享受贵宾待遇,过程很愉快也很享受...
    pan123456阅读 244评论 0 2

友情链接更多精彩内容