(*)數字函數
執行備忘中的代碼
- 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