(*)数字函数
执行备注中的代码
- ABS() :求绝对值。
- CEILING():舍入到最大整数 。3.33将被舍入为4、2.89将被舍入为3、-3.61将被舍入为-3。
Ceiling→天花板
- FLOOR():舍入到最小整数。3.33将被舍入为3、2.89将被舍入为2、-3.61将被舍入为-4。
Floor→地板。
- ROUND(字段,小数位数):四舍五入。舍入到“离我半径最近的数” 。Round→“半径”。Round(3.1425,2)。
(*)字符串函数
- LEN() :计算字符串长度
- LOWER() 、UPPER () :lower转小写、upper大写
- LTRIM():字符串左侧的空格去掉
- RTRIM () :字符串右侧的空格去掉
- LTRIM(RTRIM(' bb ')):去掉两边空格
- SUBSTRING(string,start_position,length)
参数string为主字符串,start_position为子字符串,
在主字符串中的起始位置,length为子字符串的最大长度。
SELECT SUBSTRING('abcdef111',2,3)
日期函数
GETDATE() :取得当前日期时间
DATEADD (datepart , number, date ),计算增加以后的日期。
DATEDIFF ( datepart , startdate , enddate ) :计算两个日期之间的差额。
DATEPART (datepart,date):返回一个日期的特定部分
- GETDATE() :取得当前日期时间
=====================================================
- DATEADD (datepart , number, date ),计算增加以后的日期。参数date为待计算的日期;参数number为增量;参数datepart为计量单位,可选值见备注。
DATEADD(DAY, 3,date)为计算日期date的3天后的日期
2012.7.28的3天后为7.31
而DATEADD(MONTH ,-8,date)为计算日期date的8个月之前的日期
select DATEADD(MONTH,-8,GETDATE())
2012.7减8个月为2011.11
=====================================================
- DATEDIFF ( datepart , startdate , enddate ) :计算两个日期之间的差额。
datepart 为计量单位,可取值参考DateAdd。
员工入职的时间
select FName,FInDate,DATEDIFF(YEAR,FInDate,GETDATE()) from T_Employee
统计不同工龄的员工的个数:
select DateDiff(year,FInDate,getdate()),count(*) from T_Employee group by DateDiff(year,FInDate,getdate())
=====================================================
- DATEPART (datepart,date):返回一个日期的特定部分
统计员工的入职年份个数:
select DatePart(year,FInDate),count(*) from T_Employee
group by DatePart(year,FInDate)
=====================================================
类型转换函数
CAST ( expression AS data_type)
CONVERT ( data_type, expression)
CAST
CONVERT
SELECT FIdNumber,
RIGHT(FIdNumber,3) as 后三位,
CAST(RIGHT(FIdNumber,3) AS INTEGER) as 后三位的整数形式,
CAST(RIGHT(FIdNumber,3) AS INTEGER)+1 as 后三位加1,
CONVERT(INTEGER,RIGHT(FIdNumber,3))/2 as 后三位除以2
FROM T_Person