+ returns high-precision date and time; see also
+ linkend="functions-datetime-current">below
+
+ timeofday()
+ Wed Feb 21 17:01:13.000126 2001 EST
+
+
|
timestamp(date)
timestamp
Current Date/Time
- The following functions are available to select the current date and/or time:
+ The following functions are available to obtain the current date and/or
+ time:
CURRENT_TIME
CURRENT_DATE
SELECT CURRENT_TIME;
-19:07:13
+19:07:32
SELECT CURRENT_DATE;
2001-02-17
SELECT CURRENT_TIMESTAMP;
-2001-02-17 19:07:32+00
+2001-02-17 19:07:32-05
The function now() is the traditional
CURRENT_TIMESTAMP.
-
Postgres furthermore has special
- date/time constants
that can be used to specify the
- current time. The following three all return the same result:
+
+
+ There is also timeofday(), which returns current
+ time to higher precision than the CURRENT_TIMESTAMP
+ family does:
+
+
+
+
+SELECT timeofday();
+ Sat Feb 17 19:07:32.000126 2001 EST
+
+
+
+ timeofday() uses the operating system call
+ gettimeofday(2), which may have resolution as
+ good as microseconds (depending on your platform); the other functions
+ rely on time(2) which is restricted to one-second
+ resolution. For historical reasons, timeofday()
+ returns its result as a text string rather than a timestamp value.
+
+
+ It is quite important to realize that
+ CURRENT_TIMESTAMP and related functions all return
+ the time as of the start of the current transaction; their values do not
+ increment while a transaction is running. But
+ timeofday() returns the actual current time.
+
+
+ All the date/time datatypes also accept the special literal value
+ now> to specify the current date and time. Thus,
+ the following three all return the same result:
SELECT CURRENT_TIMESTAMP;
SELECT now();
You do not want to use the third form when specifying a DEFAULT
- value when creating a table. The system will immediately
- evaluate the constant, thus when the default value is needed,
+ value while creating a table. The system will convert now>
+ to a timestamp as soon as the constant is parsed, so that when
+ the default value is needed,
the time of the table creation would be used! The first two
forms will not be evaluated until the default value is used,
- because they are function calls.
+ because they are function calls. Thus they will give the desired
+ behavior of defaulting to the time of row insertion.