KSQL函數大全

字符串函數:

1、CHAR
將 int ASCII 代碼轉換爲字符的字符串函數。
語法
CHAR ( integer_expression )
參數
integer_expression
 介於 0 和 255 之間的整數。如果整數表達式不在此範圍內,將返回 NULL 值。
返回類型
CHAR(1)
示例
SELECT CHAR(65) from table
答案:A

2、LCASE
將大寫字符數據轉換爲小寫字符數據後返回字符表達式。
語法
LCASE ( character_expression )
參數
character_expression
 是字符或二進制數據表達式。
character_expression 可以是常量和列。它必須是可以隱式轉換成CHAR和VARCHR的數據類型。否則使用CONVERT顯式轉換character_expression。
返回類型
VARCHR
示例
SELECT LCASE ('HI WORLD') FROM

答案:hi world

3、LEFT
返回從字符串左邊開始指定個數的字符。
語法
LEFT ( character_expression , integer_expression )
參數
character_expression
 是字符或二進制數據表達式。
character_expression 可以是常量和列。它必須是可以隱式轉換成CHAR和VARCHR的數據類型。否則使用CONVERT顯式轉換character_expression。

integer_expression
是正整數。如果 integer_expression 爲負,則返回空字符串。
返回類型
VARCHAR
示例
SELECT LEFT('hi world!',2) FROM table

答案:hi

4、LENGTH
返回給定字符串表達式的字符(而不是字節)個數,其中不包含尾隨空格
語法
LENGTH ( string_expression )
參數
string_expression
 要計算的字符串表達式。
返回類型
INT
示例
SELECT LENGTH('How are you') FROM table

答案:11

5、LTRIM
刪除起始空格後返回字符表達式。
語法
LTRIM ( character_expression )
參數
character_expression
 是字符或二進制數據表達式。
character_expression 可以是常量和列。它必須是可以隱式轉換成CHAR和VARCHR的數據類型。否則使用CONVERT顯式轉換character_expression。
返回類型
VARCHAR
示例
SELECT LTRIME(' hi world!') FROM table
答案:hi world!

6、RIGHT
返回字符串中從右邊開始指定個數的 integer_expression 字符。
語法
RIGHT ( character_expression , integer_expression )
參數
character_expression
 是字符或二進制數據表達式。
character_expression 可以是常量和列。它必須是可以隱式轉換成CHAR和VARCHR的數據類型。否則使用CONVERT顯式轉換character_expression。

integer_expression
是正整數,開始返回字符串的起始位置。如果 integer_expression 爲負,則根據目標數據庫的環境返回相應的錯誤信息。
返回類型
VARCHAR
示例
SELECT RIGHT('hi world!',2) FROM table

答案:d!

7、RTRIM
截斷所有尾隨空格後返回一個字符串。
語法
RTRIM ( character_expression )
參數
character_expression
 由字符數據組成的表達式。character_expression 可以是常量、也可以是字符或二進制數據的列。
返回類型
VARCHAR
示例
SELECT RTRIM('hi world!  ') + 'abc' FROM table

答案:hi world!abc

8、UCASE
返回將小寫字符數據轉換爲大寫的字符表達式。
語法
UPPER ( character_expression )
參數
character_expression
 由字符數據組成的表達式。character_expression 可以是常量、也可以是字符或二進制數據的列。
返回類型
VARCHAR
示例
SELECT UCASE('hi world!') from table

答案:HI WORLD!

9、SUBSTRING
返回字符CHAR,VARCHAR,NCHAR,NVARCHAR,CLOB,BLOB或具有其類型的結果表達式的一部分。
語法
SUBSTRING ( expression , start , length )
參數
expression
 是字符串、字符串大對象, 列或包含列的表達式。不使用包含聚合函數的表達式。
Start
 是一個整數,指定子串的開始位置。
Length
 是一個整數,指定子串的長度(要返回的字符數或字節數)。
返回類型
返回字符數據。
示例
SELECT SUBSTRING('hi world!', 1 ,2) FROM table
答案:hi

10、CONCAT
返回連接兩個字符型表達式的結果。
語法
CONCAT( expression1 , expression2 )
參數
expression1
 是字符串、字符串大對象, 列或包含列的表達式。不要使用包含聚合函數的表達式。
expression2
 是字符串、字符串大對象, 列或包含列的表達式。不要用包含聚合函數的表達式。
返回類型
字符數據
示例
SELECT CONCAT('hi ','world') FROM table

答案:hi world

11、REPLACE
返回在指定的字符串中用某一字符串替換特定字符串的結果。
語法
REPLACE( expression1 , expression2, expression3 )
參數
expression1
 指定的字符串。
expression2
 需要查找替換的字符串。
Expression3
 替換爲的字符串。
返回類型
字符數據
示例
SELECT REPLACE('hi world!','hi','hello') FROM table
答案:hello world!

12、CHARINDEX
返回指定的字符串中某一子字符串替換特定字符串的結果。
語法
CHARINDEX( expression1 , expression2 )
參數
expression1
 指定的字符串。
expression2
 需要查找替換的字符串。
Expression3
 替換爲的字符串。
返回類型
字符數據
示例
SELECT charindex('w','hi world!',0) from table
答案:4

時間函數:

1、CURDATE
返回現在日期,時分秒爲00:00:00。
語法
CURDATE( )
參數
返回類型
DATETIME
示例
SELECT CURDATE( ) FROM table
答案:2009-08-17 00:00:00.0

2、CURTIME
返回現在時間,沒有日期部分。
語法
CURTIME( )
參數
返回類型
DATETIME
示例
SELECT CURTIME() from table

答案:13:03:09

3、DAYOFMONTH
返回日期和時間戳月中的第幾號。
語法
DAYOFMONTH ( expression )
參數
expression
 日期常量,時間戳常量,具有DATETIME類型的列它們的任意組合運算的結果。
返回類型
INT
示例
SELECT curdate(),DAYOFMONTH(curdate()) from table

答案:2009-08-17 00:00:00.0; 17

4、DAYOFWEEK
返回日期和時間戳的一週星期幾,注意週日爲第一天。
語法
DAYOFWEEK( expression )
參數
expression
  日期常量,時間戳常量,具有DATETIME類型的列及它們的任意組合運算的結果。
返回類型
INT
示例
SELECT curdate(),DAYOFWEEK(curdate()) FROM table

答案:2009-08-17 00:00:00.0;2 (週二)

5、DAYOFYEAR
返回日期和時間戳在一年中的天數位置。

語法
DAYOFYEAR( expression )
參數
expression
  日期常量,時間戳常量,具有DATETIME類型的列及它們的任意組合運算的結果。
返回類型
INT
示例
SELECT curdate(),DAYOFYEAR(curdate()) FROM table

答案:2009-08-17 00:00:00.0;229

6、NOW
返回現在時間(時間戳)。
語法
NOW( )
參數
返回類型
DATETIME
示例
SELECT NOW() FROM table

答案:2009-08-17 13:10:54.483

7、HOUR
返回時間或時間戳中的小時部分。
語法
HOUR( expression )
參數
expression
 時間常量,時間戳常量,具有DATETIME類型的列及它們的任意組合運算的結果。
返回類型
INT
示例
SELECT HOUR( NOW()) FROM table

8、HOUR
返回時間或時間戳中的小時部分。
語法
HOUR( expression )
參數
expression
 時間常量,時間戳常量,具有DATETIME類型的列及它們的任意組合運算的結果。
返回類型
INT
示例
SELECT now(),hour(now()) from table

答案:2009-08-17 13:13:13.78;13

9、MINUTE
返回時間或時間戳中的分鐘部分。
語法
MINUTE( expression )
參數
expression
 時間常量,時間戳常量,具有DATETIME類型的列及它們的任意組合運算的結果。
返回類型
INT
示例
SELECT now(),MINUTE(NOW()) FROM table

答案:2009-08-17 13:15:34.543; 15

10、QUARTER
返回日期和時間戳的季度號。
語法
QUARTER( expression )
參數
expression
 日期常量,時間戳常量,具有DATETIME類型的列及它們的任意組合運算的結果。
返回類型
INT
示例
SELECT NOW(),QUARTER(NOW()) FROM table
答案:2009-08-17 13:16:27.013; 3

11、SECOND
返回時間和時間戳的秒部分。
語法
SECOND( expression )
參數
expression
 時間常量,時間戳常量,具有DATETIME類型的列及它們的任意組合運算的結果。
返回類型
INT
示例
SELECT NOW(),SECOND(NOW()) FROM table

答案:2009-08-17 13:18:06.217;6

12、WEEK
返回日期和時間戳在一年的第幾周。
語法
WEEK( expression )
參數
expression
日期常量,時間戳常量,具有DATETIME類型的列及它們的任意組合運算的結果。
返回類型
INT
示例
SELECT NOW(),WEEK(NOW()) FROM table
答案:2009-08-17 13:19:45.577;34

13、YEAR
返回日期和時間戳的年部分。
語法
YEAR( expression )
參數
expression
 日期常量,時間戳常量,具有DATETIME類型的列及它們的任意組合運算的結果。
返回類型
INT
示例
SELECT NOW(),YEAR(NOW()) FROM table
答案:2009-08-17 13:21:07.827 ;2009

14、DAYNAME
返回時間和時間戳在一週中名字。
語法
DAYNAME( espression )
參數
espression
 時間常量,時間戳常量,具有DATETIME類型的列及它們的任意組合運算的結果。
返回類型
VARCHAR
示例
SELECT now(),DAYNAME(NOW()) FROM table
答案:2009-08-17 13:22:04.873 ;星期一

15、MONTHNAME
返回日期和時間戳的月份名字。
語法
MONTHNAME( expression )
參數
expressi常量on
 日期,時間戳常量,具有DATETIME類型的列及它們的任意組合運算的結果。
返回類型
VARCHAR
示例
SELECT NOW(),MONTHNAME(NOW()) FROM table
答案:2009-08-17 13:23:32.17;08

16、CONVERT
返回字符串到DATETIME的轉換值
語法
CONVERT( DATETIME , expression )
參數
expression
 時間常量,日期常量,時間戳常量,具有DATETIME類型的列及它們任意組合運算的結果
返回類型
DATETIME
示例
SELECT CONVERT(datetime, '2002-07-17 16:09:53') FROM table

答案:2002-07-17 16:09:53.0(Datetime型)

17、DATEADD
返回指定的DATETIME之後若干時間後的另一個DATETIME類型的數值
語法
DATEADD(datepart,number,date)
參數
datepart
是規定應向日期的哪一部分返回新值的參數。下表列出了 Microsoft? SQL Server? 識別的日期部分和縮寫。

日期部分 縮寫
Year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms

number
是用來增加 datepart 的值。如果指定一個不是整數的值,則將廢棄此值的小數部分。例如,如果爲 datepart 指定 day,爲 number 指定 1.75,則 date 將增加 1。

date
是返回 datetime 或 smalldatetime 值或日期格式字符串的表達式。有關指定日期的更多信息,請參見 datetime 和 smalldatetime。

返回類型
DATETIME
示例
SELECT DATEADD(day,2,'2009-08-17') FROM table

答案:2009-08-19(日期型)

18、DATEDIFF
返回跨兩個指定日期的日期和時間邊界數。
語法
DATEDIFF ( datepart , startdate , enddate )
datepart   
是規定了應在日期的哪一部分計算差額的參數。
   
日期部分 縮寫
   year yy, yyyy
   quarter qq, q
   Month mm, m
   dayofyear dy, y
   Day dd, d
   Week wk, ww
   Hour hh
   minute mi, n
   second ss, s
   millisecond ms   
startdate   
   是計算的開始日期。startdate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表達式。   
   因爲 smalldatetime 只精確到分鐘,所以當用 smalldatetime 值時,秒和毫秒總是 0。   
   如果您只指定年份的最後兩位數字,則小於或等於"兩位數年份截止期"配置選項的值的最後兩位數字的數字所在世紀與截止年所在世紀相同。大於該選項的值的最後兩位數字的數字所在世紀爲截止年所在世紀的前一個世紀。例如,如果 two digit year cutoff 爲 2049(默認),則 49 被解釋爲 2049,2050 被解釋爲 1950。爲避免模糊,請使用四位數的年份。   
  
enddate   
   是計算的終止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表達式
  
返回類型
INT

用法
   此函數計算兩個指定日期之間日期部分的數目。結果爲日期部分中等於(date2 - date1)的有符號的整數值。
   當結果不是日期部分的偶數倍時,DATEDIFF 將被截斷而不是被舍入。
   當使用 day 作爲日期部分時,DATEDIFF 返回兩個指定的時間之間(包括第二個日期但不包括第一個日期)的午夜數。
   當使用 month 作爲日期部分時,DATEDIFF 返回兩個日期之間(包括第二個日期但不包括第一個日期)出現的月的第一天的數目。
   當使用 week 作爲日期部分時,DATEDIFF 返回兩個日期(包括第二個日期但不包括第一個日期)之間星期日的數目。
   對於更小的時間單位存在溢出值:
   milliseconds    24 天
   seconds    68 年
   minutes    4083 年 others    沒有溢出限制
   如果超出這些限制,此函數將返回溢出錯誤。

示例
select datediff( hour, '4:00am', '5:30am' ) from  table
答案:1
select datediff(month, '2009-01-01','2009-03-02') from table
答案:2

19、TO_DATE

返回字符串到DATETIME的轉換值
語法
TO_DATE(expression )
參數
expression
 日期格式的字符常量
返回類型
DATETIME
示例
SELECT to_date('2002-07-17 16:09:53') FROM table

答案:2002-07-17 16:09:53.0(Datetime型)

SELECT to_date('2009-01-01') FROM table

答案:2009-01-01 00:00:00.0(Datetime型)

數值函數:

1、ABS
返回給定數字表達式的絕對值。
語法
ABS ( numeric_expression )
參數
numeric_expression
精確數字或近似數字數據類型類別的表達式
返回類型
返回與 numeric_expression 相同的類型。
示例:
SELECT ABS(-1.0), abs(Flocalamount) from t_gl_voucherentry

2、CELLING
返回大於或等於所給數字表達式的最小整數。
語法
CEILING ( numeric_expression )
參數
numeric_expression
 是精確數字或近似數字數據類型類別的表達式
返回類型
返回與 numeric_expression 相同的類型。
示例
SELECT CEILING(123.45), CEILING(-123.45), CEILING(0.0)

答案爲:124;123;0

3、COS
一個數學函數,返回給定表達式中給定角度(以弧度爲單位)的三角餘弦值。
語法
COS ( float_expression )
參數
float_expression
 是DECIMAL類型得expression
返回類型
DECIMAL
示例
SELECT COS(3.14/2) FROM Test

4、EXP
返回所給的 float 表達式的指數值。
語法
EXP ( float_expression )
參數
float_expression
 是 DECIMAL類型的表達式。
返回類型
DECIMAL
示例
SELECT exp(1) FROM table

5、FLOOR
返回小於或等於所給數字表達式的最大整數。
語法
FLOOR ( numeric_expression )
參數
numeric_expression
 精確數字或近似數字數據類型類別的表達式
返回類型
返回與 numeric_expression 相同的類型.
示例
SELECT FLOOR(123,45), FLOOR(-123.45) FROM table
答案爲:123;124

6、LOG
返回給定 float 表達式的自然對數(以e爲底)。
語法
LOG ( float_expression )
參數
float_expression
 是DECIMAL數據數據類型的表達式
返回類型
DECIMAL
示例
SELECT  LOG(2.718281828459)  FROM table

答案:約等於1

7、PI
返回PI的值。

KSQL無此函數

8、SIGN
返回給定表達式的正 (+1)、零 (0) 或負 (-1) 號。
語法
SIGN ( numeric_expression )
參數
numeric_expression
 精確數字或近似數字數據類型類別的表達式
返回類型
DECIMAL
示例

SELECT SIGN(1.57),sign(-10) from table

答案:1.00; -1

9、SIN
以近似數字 (float) 表達式返回給定角度(以弧度爲單位)的三角正弦值。
語法
SIN ( float_expression )
參數
float_expression
 是DECIMAL類型得表達式。
返回類型
DECIMAL
示例:

SELECT SIN(1.57) ,SIN(0) from table

答案:0.9999996829318346; 0.0

10、SQRT
返回給定表達式的平方根。
語法
SQRT ( float_expression )
參數
float_expression
 是 DECIMAL類型的表達式。
返回類型
DECIMAL
示例
SELECT SQRT(4) FROM table

答案:2

11、TAN
返回輸入表達式的正切值。
語法
TAN ( float_expression )
參數
float_expression
返回類型
float 或 real 類型的表達式,解釋爲弧度數。
示例
SELECT TAN(3.1415926/4) FROM table

12、LOG10
返回給定 float 表達式的以 10 爲底的對數。
語法
LOG10 ( float_expression )
參數
float_expression
  是 DECIMAL類型的表達式。
返回類型
DECIMAL
示例
SELECT log10(10) FROM table

答案:1

13、ROUND
返回數字表達式並四捨五入爲指定的長度或精度.
語法
ROUND ( numeric_expression , length )
參數
numeric_expression
 精確數字或近似數字數據類型類別的表達式
length
 是 numeric_expression 將要四捨五入的精度。length 必須是INT(INTEGER). 當 length 爲正數時,numeric_expression 四捨五入爲 length 所指定的小數位數。當 length 爲負數時,numeric_expression 則按 length 所指定的在小數點的左邊四捨五入。
返回類型
返回與 numeric_expression 相同的類型。
註釋
ROUND 始終返回一個值。如果 length 是負數且大於小數點前的數字個數,ROUND 將返回 0。
示例 結果
ROUND(748.58, -4) 0

示例
SELECT ROUND(123.1235, 2), ROUND(123.1235, 3) FROM  FROM table

答案:123.12;123.124

14、MOD
返回兩個整型數值相除得餘數。
語法
MOD( int_expression , int_expression )
參數
int_expression
 整型數據類型類別得表達式。
返回類型
 INT
示例
SELECT mod(11,2) FROM

答案:1

15、NULLIF
如果兩個指定的表達式相等,則返回空。
語法
NULLIF ( expression , expression )
參數
expression
 常量、列名、函數、子查詢或算術運算符的任意組合。
返回類型
返回類型與第一個 expression 相同。
如果兩個表達式不相等,NULLIF 返回第一個 expression 的值。如果相等,NULLIF 返回第一個 expression 類型的空值。
示例
select NULLIF(1,1),NULLIF(1,2) from table

答案: 空;1

16、ISNULL
如果第一個表達式的值爲空,則返回第二個表達式的值,否則,返回第一個表達式的值。
語法
ISNULL ( expression , expression )
參數
expression
 常量、列名、函數、子查詢或算術運算符的任意組合。
返回類型
返回類型與第一個 expression 相同。
如果第一個表達式的值爲空,ISNULL 返回第二個 expression 的值。否則,ISNULL 返回第一個 expression 類型的值。
示例
SELECT ISNULL( FMoney , 0) AS FMoney FROM table

17、ASCII
返回字符表達式最左端字符的 ASCII 代碼值。
語法
ASCII ( character_expression )
參數
character_expression
 是類型爲 char 或 varchar的表達式。
返回類型
INT
示例
select ASCII('A') FROM TABLE

答案:65


本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/wiser/archive/2009/07/29/4392093.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章