Chapter 4. Functions and Operators

Table of Contents
4.1. Logical Operators
4.2. Comparison Operators
4.3. Mathematical Functions and Operators
4.4. String Functions and Operators
4.5. Pattern Matching
4.5.1. Pattern Matching with LIKE
4.5.2. POSIX Regular Expressions
4.6. Formatting Functions
4.7. Date/Time Functions
4.7.1. EXTRACT, date_part
4.7.2. date_trunc
4.7.3. Current Date/Time
4.8. Geometric Functions and Operators
4.9. Network Address Type Functions
4.10. Conditional Expressions
4.11. Miscellaneous Functions
4.12. Aggregate Functions

Postgres provides a large number of functions and operators for the built-in data types. Users can also define their own functions and operators, as described in the Programmer's Guide. The psql commands \df and \do can be used to show the list of all actually available functions and operators, respectively.

If you are concerned about portability then take note that most of the functions and operators described in this chapter, with the exception of the most trivial arithmetic and comparison operators and some explicitly marked functions, are not specified by the SQL standard. However, many other RDBMS packages provide a lot of the same or similar functions, and some of the ones provided in Postgres have in fact been inspired by other implementations.

4.1. Logical Operators

The usual logical operators are available:

AND
OR
NOT

SQL uses a three-valued Boolean logic where NULL represents "unknown". Observe the following truth tables:

aba AND ba OR b
TRUETRUETRUETRUE
TRUEFALSEFALSETRUE
TRUENULLNULLTRUE
FALSEFALSEFALSEFALSE
FALSENULLFALSENULL
NULLNULLNULLNULL

aNOT a
TRUEFALSE
FALSETRUE
NULLNULL