1. 程式人生 > >[sql] 常用函數整理(T-SQL 版)

[sql] 常用函數整理(T-SQL 版)

pla weekday 可能 小時 string 時間函數 -s 工作日 整數

USE master;

--5.2 字符串函數
--1.計算字符串長度
SELECT LEN(abc);

--2.字符串轉換為小寫
SELECT A,
    LOWER(a);

--3.字符串轉換為大寫
SELECT a,
    UPPER(a);

--4.截去字符串左側空格
SELECT  a ,
    LTRIM( a );

--5.截去字符串右側空格
SELECT  a ,
    RTRIM( a );

--6.截去字符串兩側的空格
SELECT  a ,
    RTRIM(LTRIM
( a )); --7.取子字符串 SELECT abcdef, SUBSTRING(abcdef, 2, 3); --8.計算子字符串的位置 SELECT abcdef, CHARINDEX(abcdef, abcdef); --9.從左側開始取子字符串 SELECT abcdef, LEFT(abcdef, 3); --10.從右側開始取子字符串 SELECT abcdef, RIGHT(abcdef, 3); --11.字符串替換 SELECT REPLACE( abc def
, , ‘‘); --12.得到字符的 ASCII 碼 SELECT ASCII(a), ASCII(abc); --13.得到一個 ASCII 碼數字對應的字符 SELECT CHAR(56), CHAR(90), CHAR(ASCII(a)); --轉換為整數 SELECT CEILING(90.021); --14.發音匹配度 SELECT SOUNDEX(jack), SOUNDEX(jeck), SOUNDEX(joke), SOUNDEX(juke),
SOUNDEX(look), SOUNDEX(jobe); SELECT DIFFERENCE(Kerry, Merry); --5.3 日期時間函數 --1.取得當前日期時間的函數為 GETDATE() SELECT GETDATE(); SELECT CONVERT(VARCHAR(50), GETDATE(), 101) AS 當前日期, CONVERT(VARCHAR(50), GETDATE(), 108) AS 當前時間; --日期增減 SELECT GETDATE(), DATEADD(YEAR, 3, GETDATE()) AS threeyrs, DATEADD(QUARTER, 20, GETDATE()) AS ttqutrs, DATEADD(MONTH, 68, GETDATE()) AS sxtmonths, DATEADD(WEEK, -1000, GETDATE()) AS thweeik; --計算日期差額 SELECT GETDATE(), DATEDIFF(YEAR, 1992-06-01 00:00:00, GETDATE()) 年份, DATEDIFF(QUARTER, 1992-06-01 00:00:00, GETDATE()) 季度, DATEDIFF(MONTH, 1992-06-01 00:00:00, GETDATE()) 月份, DATEDIFF(DAYOFYEAR, 1992-06-01 00:00:00, GETDATE()) 每年的某一日, DATEDIFF(DAY, 1992-06-01 00:00:00, GETDATE()) 日期, DATEDIFF(WEEK, 1992-06-01 00:00:00, GETDATE()) 星期, DATEDIFF(WEEKDAY, 1992-06-01 00:00:00, GETDATE()) 工作日, DATEDIFF(HOUR, 1992-06-01 00:00:00, GETDATE()) 小時, DATEDIFF(MINUTE, 1992-06-01 00:00:00, GETDATE()) 分鐘, DATEDIFF(SECOND, 1992-06-01 00:00:00, GETDATE()) ; -- 5.3.6 計算一個日期是星期幾 SELECT GETDATE(), DATENAME(YEAR, GETDATE()) 年份, DATENAME(QUARTER, GETDATE()) 季度, DATENAME(MONTH, GETDATE()) 月份, DATENAME(DAYOFYEAR, GETDATE()) 每年的某一日, DATENAME(DAY, GETDATE()) 日期, DATENAME(WEEK, GETDATE()) 星期, DATENAME(WEEKDAY, GETDATE()) 工作日, DATENAME(HOUR, GETDATE()) 小時, DATENAME(MINUTE, GETDATE()) 分鐘, DATENAME(SECOND, GETDATE()) , DATENAME(MILLISECOND, GETDATE()) 毫秒; -- 5.3.7 取得日期的指定部分 SELECT GETDATE(), DATEPART(YEAR, GETDATE()) 年份, DATEPART(QUARTER, GETDATE()) 季度, DATEPART(MONTH, GETDATE()) 月份, DATEPART(DAYOFYEAR, GETDATE()) 每年的某一日, DATEPART(DAY, GETDATE()) 日期, DATEPART(WEEK, GETDATE()) 星期, DATEPART(WEEKDAY, GETDATE()) 工作日, DATEPART(HOUR, GETDATE()) 小時, DATEPART(MINUTE, GETDATE()) 分鐘, DATEPART(SECOND, GETDATE()) , DATEPART(MILLISECOND, GETDATE()) 毫秒; -- DATEPART() 函數的返回值是數字而 DATENAME() 函數則會將盡可能的以名稱的方式做為返回值 -- 5.4 其他函數 -- 5.4.1 類型轉換 --CAST ( expression AS data_type) --CONVERT ( data_type, expression) SELECT CAST(-30 AS INT) as i, CONVERT(DECIMAL,3.1415726) as d, CONVERT(DATETIME,2008-08-08 08:09:10) as dt -- 5.4.2 空值處理 -- 5.4.2.1 COALESCE()函數 -- COALESCE ( expression,value1,value2……,valuen) SELECT COALESCE(‘‘, GETDATE()), COALESCE(NULL, GETDATE()), COALESCE(NULL, 2008-08-08,GETDATE())

[sql] 常用函數整理(T-SQL 版)