<filename>postgresql.conf</filename>, or in any of the
other standard ways described in <xref linkend="runtime-config"/>.
There are also some special ways to set it:
<itemizedlist>
<listitem>
<para>
The <acronym>SQL</acronym> command <command>SET TIME ZONE</command>
sets the time zone for the session. This is an alternative spelling
of <command>SET TIMEZONE TO</command> with a more SQL-spec-compatible syntax.
</para>
</listitem>
<listitem>
<para>
The <envar>PGTZ</envar> environment variable is used by
<application>libpq</application> clients
to send a <command>SET TIME ZONE</command>
command to the server upon connection.
</para>
</listitem>
</itemizedlist>
</para>
</sect2>
<sect2 id="datatype-interval-input">
<title>Interval Input</title>
<indexterm>
<primary>interval</primary>
</indexterm>
<para>
<type>interval</type> values can be written using the following
verbose syntax:
<synopsis>
<optional>@</optional> <replaceable>quantity</replaceable> <replaceable>unit</replaceable> <optional><replaceable>quantity</replaceable> <replaceable>unit</replaceable>...</optional> <optional><replaceable>direction</replaceable></optional>
</synopsis>
where <replaceable>quantity</replaceable> is a number (possibly signed);
<replaceable>unit</replaceable> is <literal>microsecond</literal>,
<literal>millisecond</literal>, <literal>second</literal>,
<literal>minute</literal>, <literal>hour</literal>, <literal>day</literal>,
<literal>week</literal>, <literal>month</literal>, <literal>year</literal>,
<literal>decade</literal>, <literal>century</literal>, <literal>millennium</literal>,
or abbreviations or plurals of these units;
<replaceable>direction</replaceable> can be <literal>ago</literal> or
empty. The at sign (<literal>@</literal>) is optional noise. The amounts
of the different units are implicitly added with appropriate
sign accounting. <literal>ago</literal> negates all the fields.
This syntax is also used for interval output, if
<xref linkend="guc-intervalstyle"/> is set to
<literal>postgres_verbose</literal>.
</para>
<para>
Quantities of days, hours, minutes, and seconds can be specified without
explicit unit markings. For example, <literal>'1 12:59:10'</literal> is read
the same as <literal>'1 day 12 hours 59 min 10 sec'</literal>. Also,
a combination of years and months can be specified with a dash;
for example <literal>'200-10'</literal> is read the same as <literal>'200 years
10 months'</literal>. (These shorter forms are in fact the only ones allowed
by the <acronym>SQL</acronym> standard, and are used for output when
<varname>IntervalStyle</varname> is set to <literal>sql_standard</literal>.)
</para>
<para>
Interval values can also be written as ISO 8601 time intervals, using
either the <quote>format with designators</quote> of the standard's section
4.4.3.2 or the <quote>alternative format</quote> of section 4.4.3.3. The
format with designators looks like this:
<synopsis>
P <replaceable>quantity</replaceable> <replaceable>unit</replaceable> <optional> <replaceable>quantity</replaceable> <replaceable>unit</replaceable> ...</optional> <optional> T <optional> <replaceable>quantity</replaceable> <replaceable>unit</replaceable> ...</optional></optional>
</synopsis>
The string must start with a <literal>P</literal>, and may include a
<literal>T</literal> that introduces the time-of-day units. The
available unit abbreviations are given in <xref
linkend="datatype-interval-iso8601-units"/>. Units may be
omitted, and may be specified in any order, but units smaller than
a day must appear after <literal>T</literal>. In particular, the meaning of
<literal>M</literal> depends