function receives a timestamp as its only argument and returns the
extracted date part from this timestamp.
</para>
</listitem>
</varlistentry>
<varlistentry id="pgtypesdatefromasc">
<term><function>PGTYPESdate_from_asc</function></term>
<listitem>
<para>
Parse a date from its textual representation.
<synopsis>
date PGTYPESdate_from_asc(char *str, char **endptr);
</synopsis>
The function receives a C char* string <literal>str</literal> and a pointer to
a C char* string <literal>endptr</literal>. At the moment ECPG always parses
the complete string and so it currently does not support to store the
address of the first invalid character in <literal>*endptr</literal>.
You can safely set <literal>endptr</literal> to NULL.
</para>
<para>
Note that the function always assumes MDY-formatted dates and there is
currently no variable to change that within ECPG.
</para>
<para>
<xref linkend="ecpg-pgtypesdate-from-asc-table"/> shows the allowed input formats.
</para>
<table id="ecpg-pgtypesdate-from-asc-table">
<title>Valid Input Formats for <function>PGTYPESdate_from_asc</function></title>
<tgroup cols="2">
<thead>
<row>
<entry>Input</entry>
<entry>Result</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>January 8, 1999</literal></entry>
<entry><literal>January 8, 1999</literal></entry>
</row>
<row>
<entry><literal>1999-01-08</literal></entry>
<entry><literal>January 8, 1999</literal></entry>
</row>
<row>
<entry><literal>1/8/1999</literal></entry>
<entry><literal>January 8, 1999</literal></entry>
</row>
<row>
<entry><literal>1/18/1999</literal></entry>
<entry><literal>January 18, 1999</literal></entry>
</row>
<row>
<entry><literal>01/02/03</literal></entry>
<entry><literal>February 1, 2003</literal></entry>
</row>
<row>
<entry><literal>1999-Jan-08</literal></entry>
<entry><literal>January 8, 1999</literal></entry>
</row>
<row>
<entry><literal>Jan-08-1999</literal></entry>
<entry><literal>January 8, 1999</literal></entry>
</row>
<row>
<entry><literal>08-Jan-1999</literal></entry>
<entry><literal>January 8, 1999</literal></entry>
</row>
<row>
<entry><literal>99-Jan-08</literal></entry>
<entry><literal>January 8, 1999</literal></entry>
</row>
<row>
<entry><literal>08-Jan-99</literal></entry>
<entry><literal>January 8, 1999</literal></entry>
</row>
<row>
<entry><literal>08-Jan-06</literal></entry>
<entry><literal>January 8, 2006</literal></entry>
</row>
<row>
<entry><literal>Jan-08-99</literal></entry>
<entry><literal>January 8, 1999</literal></entry>
</row>
<row>
<entry><literal>19990108</literal></entry>
<entry><literal>ISO 8601; January 8, 1999</literal></entry>
</row>
<row>
<entry><literal>990108</literal></entry>
<entry><literal>ISO 8601; January 8, 1999</literal></entry>
</row>
<row>
<entry><literal>1999.008</literal></entry>
<entry><literal>year and day of year</literal></entry>
</row>
<row>
<entry><literal>J2451187</literal></entry>
<entry><literal>Julian day</literal></entry>
</row>
<row>
<entry><literal>January 8, 99 BC</literal></entry>