SQL Functions in Dbms
SQL Functions in Dbms
Numeric functions are used to perform operations on numbers. They accept numeric values as
input and return numeric values as output. Few of the Numeric functions are:
Function
Return Value
Name
ABS (x)
Absolute value of the number 'x'
CEIL (x)
Integer value that is Greater than or equal to the number 'x'
FLOOR (x)
Integer value that is Less than or equal to the number 'x'
TRUNC (x, y) Truncates value of number 'x' up to 'y' decimal places
ROUND (x, y) Rounded off value of the number 'x' up to the number 'y' decimal places
The following examples explains the usage of the above numeric functions
Function
Name
Examples
Return Value
ABS (1)
1
ABS (-1)
-1
CEIL (2.83)
3
CEIL (x)
CEIL (2.49)
3
CEIL (-1.6)
-1
FLOOR (2.83)
2
FLOOR (x)
FLOOR (2.49)
2
FLOOR (-1.6)
-2
ROUND (125.456, 1) 125.4
TRUNC (x, y) ROUND (125.456, 0) 125
ROUND (124.456, -1) 120
TRUNC (140.234, 2) 140.23
TRUNC (-54, 1)
54
ROUND (x, y)
TRUNC (5.7)
5
TRUNC (142, -1)
140
ABS (x)
The following examples explains the usage of the above character or text functions
Function Name
Examples
Return Value
LOWER(string_value)
LOWER('Good Morning')
good morning
UPPER(string_value)
UPPER('Good Morning')
GOOD MORNING
INITCAP(string_value)
INITCAP('GOOD MORNING')
Good Morning
LTRIM(string_value, trim_text)
LTRIM ('Good Morning', 'Good)
Morning
RTRIM (string_value, trim_text)
RTRIM ('Good Morning', ' Morning') Good
TRIM (trim_text FROM string_value) TRIM ('o' FROM 'Good Morning') Gd Mrning
SUBSTR (string_value, m, n)
SUBSTR ('Good Morning', 6, 7)
Morning
LENGTH (string_value)
LENGTH ('Good Morning')
12
LPAD (string_value, n, pad_value)
LPAD ('Good', 6, '*')
**Good
Good**
3) Date Functions:
These are functions that take values that are of datatype DATE as input and return values of
datatypes DATE, except for the MONTHS_BETWEEN function, which returns a number as
output.
Few date functions are as given below.
Function Name
Return Value
ADD_MONTHS (date, n) Returns a date value after adding 'n' months to the date 'x'.
MONTHS_BETWEEN
Returns the number of months between dates x1 and x2.
(x1, x2)
Returns the date 'x' rounded off to the nearest century, year, month,
ROUND (x, date_format)
date, hour, minute, or second as specified by the 'date_format'.
Returns the date 'x' lesser than or equal to the nearest century, year,
TRUNC (x, date_format) month, date, hour, minute, or second as specified by the
'date_format'.
NEXT_DAY (x,
Returns the next date of the 'week_day' on or after the date 'x' occurs.
week_day)
It is used to determine the number of days remaining in a month
LAST_DAY (x)
from the date 'x' specified.
SYSDATE
Returns the systems current date and time.
NEW_TIME (x, zone1,
Returns the date and time in zone2 if date 'x' represents the time in
zone2)
zone1.
The below table provides the examples for the above functions
Function Name
Examples
Return Value
ADD_MONTHS ( )
ADD_MONTHS ('16-Sep-81', 3)
16-Dec-81
MONTHS_BETWEEN( ) MONTHS_BETWEEN ('16-Sep-81', '16-Dec-81') 3
NEXT_DAY( )
NEXT_DAY ('01-Jun-08', 'Wednesday')
04-JUN-08
LAST_DAY( )
LAST_DAY ('01-Jun-08')
30-Jun-08
NEW_TIME( )
NEW_TIME ('01-Jun-08', 'IST', 'EST')
31-May-08
4) Conversion Functions:
These are functions that help us to convert a value in one form to another form. For Ex: a null
value into an actual value, or a value from one datatype to another datatype like NVL,
TO_CHAR, TO_NUMBER, TO_DATE.
Return Value
Converts Numeric and Date values to a character string value. It
cannot be used for calculations since it is a string value.
Converts a valid Numeric and Character values to a Date value. Date
is formatted to the format specified by 'date_format'.
If 'x' is NULL, replace it with 'y'. 'x' and 'y' must be of the same
datatype.
Checks the value of 'a', if a = b, then returns 'c'. If a = d, then returns
'e'. Else, returns default_value.
The below table provides the examples for the above functions
Function Name
TO_CHAR ()
TO_DATE ()
NVL ()
Examples
Return Value
TO_CHAR (3000, '$9999')
$3000
TO_CHAR (SYSDATE, 'Day, Month YYYY') Monday, June 2008
TO_DATE ('01-Jun-08')
01-Jun-08
NVL (null, 1)
1