Author: paul
Date: 2008-08-19 21:31:15 +0200 (Tue, 19 Aug 2008)
New Revision: 11577
Log:
r33445@frost: paul | 2008-08-19 14:30:28 -0500
Update some dates
(WL#3775)
Modified:
trunk/dynamic-docs/opsfunctions/opfunctions.xml
trunk/refman-4.1/data-types.xml
trunk/refman-4.1/functions-core.xml
trunk/refman-5.0/data-types.xml
trunk/refman-5.0/functions-core.xml
trunk/refman-5.1/data-types.xml
trunk/refman-5.1/functions-core.xml
trunk/refman-6.0/data-types.xml
trunk/refman-6.0/functions-core.xml
Property changes on: trunk
___________________________________________________________________
Name: svk:merge
- 4767c598-dc10-0410-bea0-d01b485662eb:/mysqldoc-local/mysqldoc/trunk:35828
7d8d2c4e-af1d-0410-ab9f-b038ce55645b:/mysqldoc-local/mysqldoc:33422
b5ec3a16-e900-0410-9ad2-d183a3acac99:/mysqldoc-local/mysqldoc/trunk:14218
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/mysqldoc/trunk:32819
+ 4767c598-dc10-0410-bea0-d01b485662eb:/mysqldoc-local/mysqldoc/trunk:35828
7d8d2c4e-af1d-0410-ab9f-b038ce55645b:/mysqldoc-local/mysqldoc:33445
b5ec3a16-e900-0410-9ad2-d183a3acac99:/mysqldoc-local/mysqldoc/trunk:14218
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/mysqldoc/trunk:32819
Modified: trunk/dynamic-docs/opsfunctions/opfunctions.xml
===================================================================
--- trunk/dynamic-docs/opsfunctions/opfunctions.xml 2008-08-19 15:56:08 UTC (rev 11576)
+++ trunk/dynamic-docs/opsfunctions/opfunctions.xml 2008-08-19 19:31:15 UTC (rev 11577)
Changed blocks: 4, Lines Added: 4, Lines Deleted: 4; 2188 bytes
@@ -889,7 +889,7 @@
<opfunction type="function" id="dayofmonth" class="datetime">
<display>DAYOFMONTH()</display>
- <description lang="en">Return the day of the month (1-31)</description>
+ <description lang="en">Return the day of the month (0-31)</description>
<arguments>
<format><![CDATA[<replaceable>date</replaceable>]]></format>
<argument seq="1" name="expr" type="numeric"></argument>
@@ -1313,7 +1313,7 @@
<opfunction type="function" id="subdate" class="datetime">
<display>SUBDATE()</display>
- <description lang="en">When invoked with three arguments a synonym for DATE_SUB()</description>
+ <description lang="en">A synonym for DATE_SUB() when invoked with three arguments</description>
<arguments>
<format><![CDATA[<replaceable>date</replaceable>,INTERVAL
<replaceable>expr</replaceable>
@@ -1409,7 +1409,7 @@
<opfunction type="function" id="timestamp" class="datetime" inversion="4.1.1">
<display>TIMESTAMP()</display>
<description lang="en">With a single argument, this function returns the date or
- datetime expression. With two arguments, the sum of the arguments</description>
+ datetime expression; with two arguments, the sum of the arguments</description>
<arguments>
<format><![CDATA[<replaceable>expr1</replaceable>,<replaceable>expr2</replaceable>]]></format>
<argument seq="1" name="expr" type="datetime"></argument>
@@ -1622,7 +1622,7 @@
<opfunction type="function" id="weekofyear" class="datetime" inversion="4.1.1">
<display>WEEKOFYEAR()</display>
- <description lang="en">Return the calendar week of the date (1-53)</description>
+ <description lang="en">Return the calendar week of the date (0-53)</description>
<arguments>
<format><![CDATA[<replaceable>date</replaceable>]]></format>
<argument seq="1" name="expr" type="date"></argument>
Modified: trunk/refman-4.1/data-types.xml
===================================================================
--- trunk/refman-4.1/data-types.xml 2008-08-19 15:56:08 UTC (rev 11576)
+++ trunk/refman-4.1/data-types.xml 2008-08-19 19:31:15 UTC (rev 11577)
Changed blocks: 4, Lines Added: 11, Lines Deleted: 11; 3030 bytes
@@ -2605,7 +2605,7 @@
<para>
MySQL versions through 4.1 accept certain <quote>illegal</quote>
- values for dates, such as <literal>'1999-11-31'</literal>. This is
+ values for dates, such as <literal>'2009-11-31'</literal>. This is
useful when you want to store a possibly incorrect value specified
by a user (for example, in a web form) in the database for future
processing. MySQL verifies only that the month is in the range
@@ -2615,8 +2615,8 @@
<literal>DATE</literal> or <literal>DATETIME</literal> column.
This is extremely useful for applications that need to store a
birthdate for which you do not know the exact date. In this case,
- you simply store the date as <literal>'1999-00-00'</literal> or
- <literal>'1999-01-00'</literal>. If you store dates such as these,
+ you simply store the date as <literal>'2009-00-00'</literal> or
+ <literal>'2009-01-00'</literal>. If you store dates such as these,
you should not expect to get correct results for functions such as
<function role="sql">DATE_SUB()</function> or
<function role="sql">DATE_ADD()</function> that require complete
@@ -2875,10 +2875,10 @@
<literal>'YYYYMMDDHHMMSS'</literal> or
<literal>'YYMMDDHHMMSS'</literal> format, provided that the
string makes sense as a date. For example,
- <literal>'19970523091528'</literal> and
- <literal>'970523091528'</literal> are interpreted as
- <literal>'1997-05-23 09:15:28'</literal>, but
- <literal>'971122129015'</literal> is illegal (it has a
+ <literal>'20070523091528'</literal> and
+ <literal>'070523091528'</literal> are interpreted as
+ <literal>'2007-05-23 09:15:28'</literal>, but
+ <literal>'071122129015'</literal> is illegal (it has a
nonsensical minute part) and becomes <literal>'0000-00-00
00:00:00'</literal>.
</para>
@@ -2889,10 +2889,10 @@
As a string with no delimiters in either
<literal>'YYYYMMDD'</literal> or <literal>'YYMMDD'</literal>
format, provided that the string makes sense as a date. For
- example, <literal>'19970523'</literal> and
- <literal>'970523'</literal> are interpreted as
- <literal>'1997-05-23'</literal>, but
- <literal>'971332'</literal> is illegal (it has nonsensical
+ example, <literal>'20070523'</literal> and
+ <literal>'070523'</literal> are interpreted as
+ <literal>'2007-05-23'</literal>, but
+ <literal>'071332'</literal> is illegal (it has nonsensical
month and day parts) and becomes
<literal>'0000-00-00'</literal>.
</para>
Modified: trunk/refman-4.1/functions-core.xml
===================================================================
--- trunk/refman-4.1/functions-core.xml 2008-08-19 15:56:08 UTC (rev 11576)
+++ trunk/refman-4.1/functions-core.xml 2008-08-19 19:31:15 UTC (rev 11577)
Changed blocks: 27, Lines Added: 56, Lines Deleted: 62; 10953 bytes
@@ -7220,8 +7220,7 @@
</programlisting>
<para>
- Note that the query also selects rows with dates that lie in the
- future.
+ The query also selects rows with dates that lie in the future.
</para>
<para>
@@ -7261,7 +7260,8 @@
Some date functions can be used with <quote>zero</quote> dates or
incomplete dates such as <literal>'2001-11-00'</literal>, whereas
others cannot. Functions that extract parts of dates typically
- work with incomplete dates. For example:
+ work with incomplete dates and thus can return 0 when you might
+ otherwise expect a non-zero value. For example:
</para>
<programlisting>
@@ -7317,10 +7317,10 @@
</para>
<programlisting>
-mysql> <userinput>SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);</userinput>
- -> '1998-02-02'
-mysql> <userinput>SELECT ADDDATE('1998-01-02', INTERVAL 31 DAY);</userinput>
- -> '1998-02-02'
+mysql> <userinput>SELECT DATE_ADD('2008-01-02', INTERVAL 31 DAY);</userinput>
+ -> '2008-02-02'
+mysql> <userinput>SELECT ADDDATE('2008-01-02', INTERVAL 31 DAY);</userinput>
+ -> '2008-02-02'
</programlisting>
<para>
@@ -7335,8 +7335,8 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT ADDDATE('1998-01-02', 31);</userinput>
- -> '1998-02-02'
+mysql> <userinput>SELECT ADDDATE('2008-01-02', 31);</userinput>
+ -> '2008-02-02'
</programlisting>
</listitem>
@@ -7371,8 +7371,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT ADDTIME('2007-12-31 23:59:59.999999',</userinput>
- -> <userinput>'1 1:1:1.000002');</userinput>
+mysql> <userinput>SELECT ADDTIME('2007-12-31 23:59:59.999999', '1 1:1:1.000002');</userinput>
-> '2008-01-02 01:01:01.000001'
mysql> <userinput>SELECT ADDTIME('01:00:00.999999', '02:00:00.999998');</userinput>
-> '03:00:01.999997'
@@ -7978,8 +7977,8 @@
<programlisting>
mysql> <userinput>SELECT 6/4;</userinput>
-> 1.50
-mysql> <userinput>SELECT DATE_ADD('1999-01-01', INTERVAL 6/4 HOUR_MINUTE);</userinput>
- -> '1999-01-01 01:50:00'
+mysql> <userinput>SELECT DATE_ADD('2009-01-01', INTERVAL 6/4 HOUR_MINUTE);</userinput>
+ -> '2009-01-04 12:20:00'
</programlisting>
<para>
@@ -7989,10 +7988,10 @@
</para>
<programlisting>
-mysql> <userinput>SELECT DATE_ADD('1999-01-01', INTERVAL 1 DAY);</userinput>
- -> '1999-01-02'
-mysql> <userinput>SELECT DATE_ADD('1999-01-01', INTERVAL 1 HOUR);</userinput>
- -> '1999-01-01 01:00:00'
+mysql> <userinput>SELECT DATE_ADD('2013-01-01', INTERVAL 1 DAY);</userinput>
+ -> '2013-01-02'
+mysql> <userinput>SELECT DATE_ADD('2013-01-01', INTERVAL 1 HOUR);</userinput>
+ -> '2013-01-01 01:00:00'
</programlisting>
<para>
@@ -8004,8 +8003,8 @@
</para>
<programlisting>
-mysql> <userinput>SELECT DATE_ADD('1998-01-30', INTERVAL 1 MONTH);</userinput>
- -> '1998-02-28'
+mysql> <userinput>SELECT DATE_ADD('2009-01-30', INTERVAL 1 MONTH);</userinput>
+ -> '2009-02-28'
</programlisting>
<para>
@@ -8222,7 +8221,7 @@
<para>
Ranges for the month and day specifiers begin with zero due to
the fact that MySQL allows the storing of incomplete dates
- such as <literal>'2004-00-00'</literal> (as of MySQL 3.23).
+ such as <literal>'2014-00-00'</literal> (as of MySQL 3.23).
</para>
<para>
@@ -8345,8 +8344,8 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT DAYNAME('1998-02-05');</userinput>
- -> 'Thursday'
+mysql> <userinput>SELECT DAYNAME('2007-02-03');</userinput>
+ -> 'Saturday'
</programlisting>
</listitem>
@@ -8381,7 +8380,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT DAYOFMONTH('1998-02-03');</userinput>
+mysql> <userinput>SELECT DAYOFMONTH('2007-02-03');</userinput>
-> 3
</programlisting>
</listitem>
@@ -8415,8 +8414,8 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT DAYOFWEEK('1998-02-03');</userinput>
- -> 3
+mysql> <userinput>SELECT DAYOFWEEK('2007-02-03');</userinput>
+ -> 7
</programlisting>
</listitem>
@@ -8448,7 +8447,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT DAYOFYEAR('1998-02-03');</userinput>
+mysql> <userinput>SELECT DAYOFYEAR('2007-02-03');</userinput>
-> 34
</programlisting>
</listitem>
@@ -8484,11 +8483,11 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT EXTRACT(YEAR FROM '1999-07-02');</userinput>
- -> 1999
-mysql> <userinput>SELECT EXTRACT(YEAR_MONTH FROM '1999-07-02 01:02:03');</userinput>
- -> 199907
-mysql> <userinput>SELECT EXTRACT(DAY_MINUTE FROM '1999-07-02 01:02:03');</userinput>
+mysql> <userinput>SELECT EXTRACT(YEAR FROM '2009-07-02');</userinput>
+ -> 2009
+mysql> <userinput>SELECT EXTRACT(YEAR_MONTH FROM '2009-07-02 01:02:03');</userinput>
+ -> 200907
+mysql> <userinput>SELECT EXTRACT(DAY_MINUTE FROM '2009-07-02 01:02:03');</userinput>
-> 20102
mysql> <userinput>SELECT EXTRACT(MICROSECOND</userinput>
-> <userinput>FROM '2003-01-02 10:30:00.000123');</userinput>
@@ -8614,8 +8613,8 @@
<primary>GET_FORMAT()</primary>
</indexterm>
- <function role="sql">GET_FORMAT(DATE|TIME|DATETIME,
- 'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL')</function>
+ <function role="sql">GET_FORMAT({DATE|TIME|DATETIME},
+ {'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL'})</function>
</para>
<remark role="help-syntax-end"/>
@@ -8936,11 +8935,11 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT MAKEDATE(2001,31), MAKEDATE(2001,32);</userinput>
- -> '2001-01-31', '2001-02-01'
-mysql> <userinput>SELECT MAKEDATE(2001,365), MAKEDATE(2004,365);</userinput>
- -> '2001-12-31', '2004-12-30'
-mysql> <userinput>SELECT MAKEDATE(2001,0);</userinput>
+mysql> <userinput>SELECT MAKEDATE(2011,31), MAKEDATE(2011,32);</userinput>
+ -> '2011-01-31', '2011-02-01'
+mysql> <userinput>SELECT MAKEDATE(2011,365), MAKEDATE(2014,365);</userinput>
+ -> '2011-12-31', '2014-12-31'
+mysql> <userinput>SELECT MAKEDATE(2011,0);</userinput>
-> NULL
</programlisting>
@@ -9056,7 +9055,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT MINUTE('98-02-03 10:05:03');</userinput>
+mysql> <userinput>SELECT MINUTE('2008-02-03 10:05:03');</userinput>
-> 5
</programlisting>
</listitem>
@@ -9091,7 +9090,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT MONTH('1998-02-03');</userinput>
+mysql> <userinput>SELECT MONTH('2008-02-03');</userinput>
-> 2
</programlisting>
</listitem>
@@ -9126,7 +9125,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT MONTHNAME('1998-02-05');</userinput>
+mysql> <userinput>SELECT MONTHNAME('2008-02-03');</userinput>
-> 'February'
</programlisting>
</listitem>
@@ -9200,8 +9199,8 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT PERIOD_ADD(9801,2);</userinput>
- -> 199803
+mysql> <userinput>SELECT PERIOD_ADD(200801,2);</userinput>
+ -> 200803
</programlisting>
</listitem>
@@ -9238,7 +9237,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT PERIOD_DIFF(9802,199703);</userinput>
+mysql> <userinput>SELECT PERIOD_DIFF(200802,200703);</userinput>
-> 11
</programlisting>
</listitem>
@@ -9271,7 +9270,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT QUARTER('98-04-01');</userinput>
+mysql> <userinput>SELECT QUARTER('2008-04-01');</userinput>
-> 2
</programlisting>
</listitem>
@@ -9850,13 +9849,13 @@
Remember that MySQL converts two-digit year values in dates to
four-digit form using the rules in
<xref linkend="date-and-time-types"/>. For example,
- <literal>'1997-10-07'</literal> and
- <literal>'97-10-07'</literal> are seen as identical dates:
+ <literal>'2008-10-07'</literal> and
+ <literal>'08-10-07'</literal> are seen as identical dates:
</para>
<programlisting>
-mysql> <userinput>SELECT TO_DAYS('1997-10-07'), TO_DAYS('97-10-07');</userinput>
- -> 729669, 729669
+mysql> <userinput>SELECT TO_DAYS('2008-10-07'), TO_DAYS('08-10-07');</userinput>
+ -> 733687, 733687
</programlisting>
</listitem>
@@ -10140,14 +10139,8 @@
<colspec colwidth="50*"/>
<tbody>
<row>
- <entry/>
- <entry><emphasis role="bold">First day</emphasis></entry>
- <entry/>
- <entry/>
- </row>
- <row>
<entry><emphasis role="bold">Mode</emphasis></entry>
- <entry><emphasis role="bold">of week</emphasis></entry>
+ <entry><emphasis role="bold">First day of week</emphasis></entry>
<entry><emphasis role="bold">Range</emphasis></entry>
<entry><emphasis role="bold">Week 1 is the first week …</emphasis></entry>
</row>
@@ -10212,13 +10205,13 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT WEEK('1998-02-20');</userinput>
+mysql> <userinput>SELECT WEEK('2008-02-20');</userinput>
-> 7
-mysql> <userinput>SELECT WEEK('1998-02-20',0);</userinput>
+mysql> <userinput>SELECT WEEK('2008-02-20',0);</userinput>
-> 7
-mysql> <userinput>SELECT WEEK('1998-02-20',1);</userinput>
+mysql> <userinput>SELECT WEEK('2008-02-20',1);</userinput>
-> 8
-mysql> <userinput>SELECT WEEK('1998-12-31',1);</userinput>
+mysql> <userinput>SELECT WEEK('2008-12-31',1);</userinput>
-> 53
</programlisting>
@@ -10350,7 +10343,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT WEEKOFYEAR('1998-02-20');</userinput>
+mysql> <userinput>SELECT WEEKOFYEAR('2008-02-20');</userinput>
-> 8
</programlisting>
@@ -10388,7 +10381,8 @@
<remark role="help-example"/>
<programlisting>
- -> 2008
+mysql> <userinput>SELECT YEAR('1987-01-01');</userinput>
+ -> 1987
</programlisting>
</listitem>
Modified: trunk/refman-5.0/data-types.xml
===================================================================
--- trunk/refman-5.0/data-types.xml 2008-08-19 15:56:08 UTC (rev 11576)
+++ trunk/refman-5.0/data-types.xml 2008-08-19 19:31:15 UTC (rev 11577)
Changed blocks: 4, Lines Added: 11, Lines Deleted: 11; 3057 bytes
@@ -2713,7 +2713,7 @@
appropriate value, you can specify more exactly what kind of dates
you want MySQL to support. (See
<xref linkend="server-sql-mode"/>.) You can get MySQL to accept
- certain dates, such as <literal>'1999-11-31'</literal>, by using
+ certain dates, such as <literal>'2009-11-31'</literal>, by using
the <literal>ALLOW_INVALID_DATES</literal> SQL mode. (Before
5.0.2, this mode was the default behavior for MySQL.) This is
useful when you want to store a <quote>possibly wrong</quote>
@@ -2726,8 +2726,8 @@
<literal>DATETIME</literal> column. This is extremely useful for
applications that need to store a birthdate for which you do not
know the exact date. In this case, you simply store the date as
- <literal>'1999-00-00'</literal> or
- <literal>'1999-01-00'</literal>. If you store dates such as these,
+ <literal>'2009-00-00'</literal> or
+ <literal>'2009-01-00'</literal>. If you store dates such as these,
you should not expect to get correct results for functions such as
<function role="sql">DATE_SUB()</function> or
<function role="sql">DATE_ADD()</function> that require complete
@@ -3009,10 +3009,10 @@
<literal>'YYYYMMDDHHMMSS'</literal> or
<literal>'YYMMDDHHMMSS'</literal> format, provided that the
string makes sense as a date. For example,
- <literal>'19970523091528'</literal> and
- <literal>'970523091528'</literal> are interpreted as
- <literal>'1997-05-23 09:15:28'</literal>, but
- <literal>'971122129015'</literal> is illegal (it has a
+ <literal>'20070523091528'</literal> and
+ <literal>'070523091528'</literal> are interpreted as
+ <literal>'2007-05-23 09:15:28'</literal>, but
+ <literal>'071122129015'</literal> is illegal (it has a
nonsensical minute part) and becomes <literal>'0000-00-00
00:00:00'</literal>.
</para>
@@ -3023,10 +3023,10 @@
As a string with no delimiters in either
<literal>'YYYYMMDD'</literal> or <literal>'YYMMDD'</literal>
format, provided that the string makes sense as a date. For
- example, <literal>'19970523'</literal> and
- <literal>'970523'</literal> are interpreted as
- <literal>'1997-05-23'</literal>, but
- <literal>'971332'</literal> is illegal (it has nonsensical
+ example, <literal>'20070523'</literal> and
+ <literal>'070523'</literal> are interpreted as
+ <literal>'2007-05-23'</literal>, but
+ <literal>'071332'</literal> is illegal (it has nonsensical
month and day parts) and becomes
<literal>'0000-00-00'</literal>.
</para>
Modified: trunk/refman-5.0/functions-core.xml
===================================================================
--- trunk/refman-5.0/functions-core.xml 2008-08-19 15:56:08 UTC (rev 11576)
+++ trunk/refman-5.0/functions-core.xml 2008-08-19 19:31:15 UTC (rev 11577)
Changed blocks: 28, Lines Added: 59, Lines Deleted: 65; 11742 bytes
@@ -7430,8 +7430,7 @@
</programlisting>
<para>
- Note that the query also selects rows with dates that lie in the
- future.
+ The query also selects rows with dates that lie in the future.
</para>
<para>
@@ -7445,9 +7444,9 @@
only once per query at the start of query execution. This means
that multiple references to a function such as
<function role="sql">NOW()</function> within a single query always
- produce the same result (for our purposes a single query also
- includes a call to a stored routine or trigger and all
- sub-routines called by that routine/trigger). This principle also
+ produce the same result. (For our purposes, a single query also
+ includes a call to a stored program (stored routine or trigger)
+ and all sub-programs called by that program.) This principle also
applies to <function role="sql">CURDATE()</function>,
<function role="sql">CURTIME()</function>,
<function role="sql">UTC_DATE()</function>,
@@ -7472,7 +7471,8 @@
Some date functions can be used with <quote>zero</quote> dates or
incomplete dates such as <literal>'2001-11-00'</literal>, whereas
others cannot. Functions that extract parts of dates typically
- work with incomplete dates. For example:
+ work with incomplete dates and thus can return 0 when you might
+ otherwise expect a non-zero value. For example:
</para>
<programlisting>
@@ -7528,10 +7528,10 @@
</para>
<programlisting>
-mysql> <userinput>SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);</userinput>
- -> '1998-02-02'
-mysql> <userinput>SELECT ADDDATE('1998-01-02', INTERVAL 31 DAY);</userinput>
- -> '1998-02-02'
+mysql> <userinput>SELECT DATE_ADD('2008-01-02', INTERVAL 31 DAY);</userinput>
+ -> '2008-02-02'
+mysql> <userinput>SELECT ADDDATE('2008-01-02', INTERVAL 31 DAY);</userinput>
+ -> '2008-02-02'
</programlisting>
<para>
@@ -7545,8 +7545,8 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT ADDDATE('1998-01-02', 31);</userinput>
- -> '1998-02-02'
+mysql> <userinput>SELECT ADDDATE('2008-01-02', 31);</userinput>
+ -> '2008-02-02'
</programlisting>
</listitem>
@@ -7581,8 +7581,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT ADDTIME('2007-12-31 23:59:59.999999',</userinput>
- -> <userinput>'1 1:1:1.000002');</userinput>
+mysql> <userinput>SELECT ADDTIME('2007-12-31 23:59:59.999999', '1 1:1:1.000002');</userinput>
-> '2008-01-02 01:01:01.000001'
mysql> <userinput>SELECT ADDTIME('01:00:00.999999', '02:00:00.999998');</userinput>
-> '03:00:01.999997'
@@ -8174,8 +8173,8 @@
<programlisting>
mysql> <userinput>SELECT 6/4;</userinput>
-> 1.5000
-mysql> <userinput>SELECT DATE_ADD('1999-01-01', INTERVAL 6/4 HOUR_MINUTE);</userinput>
- -> '1999-01-04 12:20:00'
+mysql> <userinput>SELECT DATE_ADD('2009-01-01', INTERVAL 6/4 HOUR_MINUTE);</userinput>
+ -> '2009-01-04 12:20:00'
</programlisting>
<para>
@@ -8201,10 +8200,10 @@
</para>
<programlisting>
-mysql> <userinput>SELECT DATE_ADD('1999-01-01', INTERVAL 1 DAY);</userinput>
- -> '1999-01-02'
-mysql> <userinput>SELECT DATE_ADD('1999-01-01', INTERVAL 1 HOUR);</userinput>
- -> '1999-01-01 01:00:00'
+mysql> <userinput>SELECT DATE_ADD('2013-01-01', INTERVAL 1 DAY);</userinput>
+ -> '2013-01-02'
+mysql> <userinput>SELECT DATE_ADD('2013-01-01', INTERVAL 1 HOUR);</userinput>
+ -> '2013-01-01 01:00:00'
</programlisting>
<para>
@@ -8216,8 +8215,8 @@
</para>
<programlisting>
-mysql> <userinput>SELECT DATE_ADD('1998-01-30', INTERVAL 1 MONTH);</userinput>
- -> '1998-02-28'
+mysql> <userinput>SELECT DATE_ADD('2009-01-30', INTERVAL 1 MONTH);</userinput>
+ -> '2009-02-28'
</programlisting>
<para>
@@ -8426,7 +8425,7 @@
<para>
Ranges for the month and day specifiers begin with zero due to
the fact that MySQL allows the storing of incomplete dates
- such as <literal>'2004-00-00'</literal>.
+ such as <literal>'2014-00-00'</literal>.
</para>
<para>
@@ -8548,8 +8547,8 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT DAYNAME('1998-02-05');</userinput>
- -> 'Thursday'
+mysql> <userinput>SELECT DAYNAME('2007-02-03');</userinput>
+ -> 'Saturday'
</programlisting>
</listitem>
@@ -8584,7 +8583,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT DAYOFMONTH('1998-02-03');</userinput>
+mysql> <userinput>SELECT DAYOFMONTH('2007-02-03');</userinput>
-> 3
</programlisting>
</listitem>
@@ -8618,8 +8617,8 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT DAYOFWEEK('1998-02-03');</userinput>
- -> 3
+mysql> <userinput>SELECT DAYOFWEEK('2007-02-03');</userinput>
+ -> 7
</programlisting>
</listitem>
@@ -8651,7 +8650,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT DAYOFYEAR('1998-02-03');</userinput>
+mysql> <userinput>SELECT DAYOFYEAR('2007-02-03');</userinput>
-> 34
</programlisting>
</listitem>
@@ -8687,11 +8686,11 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT EXTRACT(YEAR FROM '1999-07-02');</userinput>
- -> 1999
-mysql> <userinput>SELECT EXTRACT(YEAR_MONTH FROM '1999-07-02 01:02:03');</userinput>
- -> 199907
-mysql> <userinput>SELECT EXTRACT(DAY_MINUTE FROM '1999-07-02 01:02:03');</userinput>
+mysql> <userinput>SELECT EXTRACT(YEAR FROM '2009-07-02');</userinput>
+ -> 2009
+mysql> <userinput>SELECT EXTRACT(YEAR_MONTH FROM '2009-07-02 01:02:03');</userinput>
+ -> 200907
+mysql> <userinput>SELECT EXTRACT(DAY_MINUTE FROM '2009-07-02 01:02:03');</userinput>
-> 20102
mysql> <userinput>SELECT EXTRACT(MICROSECOND</userinput>
-> <userinput>FROM '2003-01-02 10:30:00.000123');</userinput>
@@ -8811,8 +8810,8 @@
<primary>GET_FORMAT()</primary>
</indexterm>
- <function role="sql">GET_FORMAT(DATE|TIME|DATETIME,
- 'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL')</function>
+ <function role="sql">GET_FORMAT({DATE|TIME|DATETIME},
+ {'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL'})</function>
</para>
<remark role="help-syntax-end"/>
@@ -9118,11 +9117,11 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT MAKEDATE(2001,31), MAKEDATE(2001,32);</userinput>
- -> '2001-01-31', '2001-02-01'
-mysql> <userinput>SELECT MAKEDATE(2001,365), MAKEDATE(2004,365);</userinput>
- -> '2001-12-31', '2004-12-30'
-mysql> <userinput>SELECT MAKEDATE(2001,0);</userinput>
+mysql> <userinput>SELECT MAKEDATE(2011,31), MAKEDATE(2011,32);</userinput>
+ -> '2011-01-31', '2011-02-01'
+mysql> <userinput>SELECT MAKEDATE(2011,365), MAKEDATE(2014,365);</userinput>
+ -> '2011-12-31', '2014-12-31'
+mysql> <userinput>SELECT MAKEDATE(2011,0);</userinput>
-> NULL
</programlisting>
</listitem>
@@ -9223,7 +9222,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT MINUTE('98-02-03 10:05:03');</userinput>
+mysql> <userinput>SELECT MINUTE('2008-02-03 10:05:03');</userinput>
-> 5
</programlisting>
</listitem>
@@ -9258,7 +9257,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT MONTH('1998-02-03');</userinput>
+mysql> <userinput>SELECT MONTH('2008-02-03');</userinput>
-> 2
</programlisting>
</listitem>
@@ -9293,7 +9292,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT MONTHNAME('1998-02-05');</userinput>
+mysql> <userinput>SELECT MONTHNAME('2008-02-03');</userinput>
-> 'February'
</programlisting>
</listitem>
@@ -9408,8 +9407,8 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT PERIOD_ADD(9801,2);</userinput>
- -> 199803
+mysql> <userinput>SELECT PERIOD_ADD(200801,2);</userinput>
+ -> 200803
</programlisting>
</listitem>
@@ -9446,7 +9445,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT PERIOD_DIFF(9802,199703);</userinput>
+mysql> <userinput>SELECT PERIOD_DIFF(200802,200703);</userinput>
-> 11
</programlisting>
</listitem>
@@ -9479,7 +9478,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT QUARTER('98-04-01');</userinput>
+mysql> <userinput>SELECT QUARTER('2008-04-01');</userinput>
-> 2
</programlisting>
</listitem>
@@ -10187,13 +10186,13 @@
Remember that MySQL converts two-digit year values in dates to
four-digit form using the rules in
<xref linkend="date-and-time-types"/>. For example,
- <literal>'1997-10-07'</literal> and
- <literal>'97-10-07'</literal> are seen as identical dates:
+ <literal>'2008-10-07'</literal> and
+ <literal>'08-10-07'</literal> are seen as identical dates:
</para>
<programlisting>
-mysql> <userinput>SELECT TO_DAYS('1997-10-07'), TO_DAYS('97-10-07');</userinput>
- -> 729669, 729669
+mysql> <userinput>SELECT TO_DAYS('2008-10-07'), TO_DAYS('08-10-07');</userinput>
+ -> 733687, 733687
</programlisting>
</listitem>
@@ -10454,14 +10453,8 @@
<colspec colwidth="50*"/>
<tbody>
<row>
- <entry/>
- <entry><emphasis role="bold">First day</emphasis></entry>
- <entry/>
- <entry/>
- </row>
- <row>
<entry><emphasis role="bold">Mode</emphasis></entry>
- <entry><emphasis role="bold">of week</emphasis></entry>
+ <entry><emphasis role="bold">First day of week</emphasis></entry>
<entry><emphasis role="bold">Range</emphasis></entry>
<entry><emphasis role="bold">Week 1 is the first week …</emphasis></entry>
</row>
@@ -10520,13 +10513,13 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT WEEK('1998-02-20');</userinput>
+mysql> <userinput>SELECT WEEK('2008-02-20');</userinput>
-> 7
-mysql> <userinput>SELECT WEEK('1998-02-20',0);</userinput>
+mysql> <userinput>SELECT WEEK('2008-02-20',0);</userinput>
-> 7
-mysql> <userinput>SELECT WEEK('1998-02-20',1);</userinput>
+mysql> <userinput>SELECT WEEK('2008-02-20',1);</userinput>
-> 8
-mysql> <userinput>SELECT WEEK('1998-12-31',1);</userinput>
+mysql> <userinput>SELECT WEEK('2008-12-31',1);</userinput>
-> 53
</programlisting>
@@ -10646,7 +10639,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT WEEKOFYEAR('1998-02-20');</userinput>
+mysql> <userinput>SELECT WEEKOFYEAR('2008-02-20');</userinput>
-> 8
</programlisting>
</listitem>
@@ -10679,7 +10672,8 @@
<remark role="help-example"/>
<programlisting>
- -> 2008
+mysql> <userinput>SELECT YEAR('1987-01-01');</userinput>
+ -> 1987
</programlisting>
</listitem>
Modified: trunk/refman-5.1/data-types.xml
===================================================================
--- trunk/refman-5.1/data-types.xml 2008-08-19 15:56:08 UTC (rev 11576)
+++ trunk/refman-5.1/data-types.xml 2008-08-19 19:31:15 UTC (rev 11577)
Changed blocks: 4, Lines Added: 11, Lines Deleted: 11; 3100 bytes
@@ -2561,7 +2561,7 @@
date. By setting the SQL mode to the appropriate value, you can
specify more exactly what kind of dates you want MySQL to support.
(See <xref linkend="server-sql-mode"/>.) You can get MySQL to
- accept certain dates, such as <literal>'1999-11-31'</literal>, by
+ accept certain dates, such as <literal>'2009-11-31'</literal>, by
using the <literal>ALLOW_INVALID_DATES</literal> SQL mode. This is
useful when you want to store a <quote>possibly wrong</quote>
value which the user has specified (for example, in a web form) in
@@ -2573,8 +2573,8 @@
<literal>DATETIME</literal> column. This is extremely useful for
applications that need to store a birthdate for which you do not
know the exact date. In this case, you simply store the date as
- <literal>'1999-00-00'</literal> or
- <literal>'1999-01-00'</literal>. If you store dates such as these,
+ <literal>'2009-00-00'</literal> or
+ <literal>'2009-01-00'</literal>. If you store dates such as these,
you should not expect to get correct results for functions such as
<function role="sql">DATE_SUB()</function> or
<function role="sql">DATE_ADD()</function> that require complete
@@ -2856,10 +2856,10 @@
<literal>'YYYYMMDDHHMMSS'</literal> or
<literal>'YYMMDDHHMMSS'</literal> format, provided that the
string makes sense as a date. For example,
- <literal>'19970523091528'</literal> and
- <literal>'970523091528'</literal> are interpreted as
- <literal>'1997-05-23 09:15:28'</literal>, but
- <literal>'971122129015'</literal> is illegal (it has a
+ <literal>'20070523091528'</literal> and
+ <literal>'070523091528'</literal> are interpreted as
+ <literal>'2007-05-23 09:15:28'</literal>, but
+ <literal>'071122129015'</literal> is illegal (it has a
nonsensical minute part) and becomes <literal>'0000-00-00
00:00:00'</literal>.
</para>
@@ -2870,10 +2870,10 @@
As a string with no delimiters in either
<literal>'YYYYMMDD'</literal> or <literal>'YYMMDD'</literal>
format, provided that the string makes sense as a date. For
- example, <literal>'19970523'</literal> and
- <literal>'970523'</literal> are interpreted as
- <literal>'1997-05-23'</literal>, but
- <literal>'971332'</literal> is illegal (it has nonsensical
+ example, <literal>'20070523'</literal> and
+ <literal>'070523'</literal> are interpreted as
+ <literal>'2007-05-23'</literal>, but
+ <literal>'071332'</literal> is illegal (it has nonsensical
month and day parts) and becomes
<literal>'0000-00-00'</literal>.
</para>
Modified: trunk/refman-5.1/functions-core.xml
===================================================================
--- trunk/refman-5.1/functions-core.xml 2008-08-19 15:56:08 UTC (rev 11576)
+++ trunk/refman-5.1/functions-core.xml 2008-08-19 19:31:15 UTC (rev 11577)
Changed blocks: 28, Lines Added: 61, Lines Deleted: 66; 11868 bytes
@@ -7394,8 +7394,7 @@
</programlisting>
<para>
- Note that the query also selects rows with dates that lie in the
- future.
+ The query also selects rows with dates that lie in the future.
</para>
<para>
@@ -7409,10 +7408,11 @@
only once per query at the start of query execution. This means
that multiple references to a function such as
<function role="sql">NOW()</function> within a single query always
- produce the same result (for our purposes a single query also
- includes a call to a stored routine or trigger and all
- sub-routines called by that routine/trigger). This principle also
- applies to <function role="sql">CURDATE()</function>,
+ produce the same result. (For our purposes, a single query also
+ includes a call to a stored program (stored routine, trigger, or
+ event) and all sub-programs called by that program.) This
+ principle also applies to
+ <function role="sql">CURDATE()</function>,
<function role="sql">CURTIME()</function>,
<function role="sql">UTC_DATE()</function>,
<function role="sql">UTC_TIME()</function>,
@@ -7436,7 +7436,8 @@
Some date functions can be used with <quote>zero</quote> dates or
incomplete dates such as <literal>'2001-11-00'</literal>, whereas
others cannot. Functions that extract parts of dates typically
- work with incomplete dates. For example:
+ work with incomplete dates and thus can return 0 when you might
+ otherwise expect a non-zero value. For example:
</para>
<programlisting>
@@ -7492,10 +7493,10 @@
</para>
<programlisting>
-mysql> <userinput>SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);</userinput>
- -> '1998-02-02'
-mysql> <userinput>SELECT ADDDATE('1998-01-02', INTERVAL 31 DAY);</userinput>
- -> '1998-02-02'
+mysql> <userinput>SELECT DATE_ADD('2008-01-02', INTERVAL 31 DAY);</userinput>
+ -> '2008-02-02'
+mysql> <userinput>SELECT ADDDATE('2008-01-02', INTERVAL 31 DAY);</userinput>
+ -> '2008-02-02'
</programlisting>
<para>
@@ -7509,8 +7510,8 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT ADDDATE('1998-01-02', 31);</userinput>
- -> '1998-02-02'
+mysql> <userinput>SELECT ADDDATE('2008-01-02', 31);</userinput>
+ -> '2008-02-02'
</programlisting>
</listitem>
@@ -7545,8 +7546,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT ADDTIME('2007-12-31 23:59:59.999999',</userinput>
- -> <userinput>'1 1:1:1.000002');</userinput>
+mysql> <userinput>SELECT ADDTIME('2007-12-31 23:59:59.999999', '1 1:1:1.000002');</userinput>
-> '2008-01-02 01:01:01.000001'
mysql> <userinput>SELECT ADDTIME('01:00:00.999999', '02:00:00.999998');</userinput>
-> '03:00:01.999997'
@@ -8132,8 +8132,8 @@
<programlisting>
mysql> <userinput>SELECT 6/4;</userinput>
-> 1.5000
-mysql> <userinput>SELECT DATE_ADD('1999-01-01', INTERVAL 6/4 HOUR_MINUTE);</userinput>
- -> '1999-01-04 12:20:00'
+mysql> <userinput>SELECT DATE_ADD('2009-01-01', INTERVAL 6/4 HOUR_MINUTE);</userinput>
+ -> '2009-01-04 12:20:00'
</programlisting>
<para>
@@ -8159,10 +8159,10 @@
</para>
<programlisting>
-mysql> <userinput>SELECT DATE_ADD('1999-01-01', INTERVAL 1 DAY);</userinput>
- -> '1999-01-02'
-mysql> <userinput>SELECT DATE_ADD('1999-01-01', INTERVAL 1 HOUR);</userinput>
- -> '1999-01-01 01:00:00'
+mysql> <userinput>SELECT DATE_ADD('2013-01-01', INTERVAL 1 DAY);</userinput>
+ -> '2013-01-02'
+mysql> <userinput>SELECT DATE_ADD('2013-01-01', INTERVAL 1 HOUR);</userinput>
+ -> '2013-01-01 01:00:00'
</programlisting>
<para>
@@ -8174,8 +8174,8 @@
</para>
<programlisting>
-mysql> <userinput>SELECT DATE_ADD('1998-01-30', INTERVAL 1 MONTH);</userinput>
- -> '1998-02-28'
+mysql> <userinput>SELECT DATE_ADD('2009-01-30', INTERVAL 1 MONTH);</userinput>
+ -> '2009-02-28'
</programlisting>
<para>
@@ -8384,7 +8384,7 @@
<para>
Ranges for the month and day specifiers begin with zero due to
the fact that MySQL allows the storing of incomplete dates
- such as <literal>'2004-00-00'</literal>.
+ such as <literal>'2014-00-00'</literal>.
</para>
<para>
@@ -8506,8 +8506,8 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT DAYNAME('1998-02-05');</userinput>
- -> 'Thursday'
+mysql> <userinput>SELECT DAYNAME('2007-02-03');</userinput>
+ -> 'Saturday'
</programlisting>
</listitem>
@@ -8542,7 +8542,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT DAYOFMONTH('1998-02-03');</userinput>
+mysql> <userinput>SELECT DAYOFMONTH('2007-02-03');</userinput>
-> 3
</programlisting>
</listitem>
@@ -8576,8 +8576,8 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT DAYOFWEEK('1998-02-03');</userinput>
- -> 3
+mysql> <userinput>SELECT DAYOFWEEK('2007-02-03');</userinput>
+ -> 7
</programlisting>
</listitem>
@@ -8609,7 +8609,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT DAYOFYEAR('1998-02-03');</userinput>
+mysql> <userinput>SELECT DAYOFYEAR('2007-02-03');</userinput>
-> 34
</programlisting>
</listitem>
@@ -8645,11 +8645,11 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT EXTRACT(YEAR FROM '1999-07-02');</userinput>
- -> 1999
-mysql> <userinput>SELECT EXTRACT(YEAR_MONTH FROM '1999-07-02 01:02:03');</userinput>
- -> 199907
-mysql> <userinput>SELECT EXTRACT(DAY_MINUTE FROM '1999-07-02 01:02:03');</userinput>
+mysql> <userinput>SELECT EXTRACT(YEAR FROM '2009-07-02');</userinput>
+ -> 2009
+mysql> <userinput>SELECT EXTRACT(YEAR_MONTH FROM '2009-07-02 01:02:03');</userinput>
+ -> 200907
+mysql> <userinput>SELECT EXTRACT(DAY_MINUTE FROM '2009-07-02 01:02:03');</userinput>
-> 20102
mysql> <userinput>SELECT EXTRACT(MICROSECOND</userinput>
-> <userinput>FROM '2003-01-02 10:30:00.000123');</userinput>
@@ -8769,8 +8769,8 @@
<primary>GET_FORMAT()</primary>
</indexterm>
- <function role="sql">GET_FORMAT(DATE|TIME|DATETIME,
- 'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL')</function>
+ <function role="sql">GET_FORMAT({DATE|TIME|DATETIME},
+ {'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL'})</function>
</para>
<remark role="help-syntax-end"/>
@@ -9076,11 +9076,11 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT MAKEDATE(2001,31), MAKEDATE(2001,32);</userinput>
- -> '2001-01-31', '2001-02-01'
-mysql> <userinput>SELECT MAKEDATE(2001,365), MAKEDATE(2004,365);</userinput>
- -> '2001-12-31', '2004-12-30'
-mysql> <userinput>SELECT MAKEDATE(2001,0);</userinput>
+mysql> <userinput>SELECT MAKEDATE(2011,31), MAKEDATE(2011,32);</userinput>
+ -> '2011-01-31', '2011-02-01'
+mysql> <userinput>SELECT MAKEDATE(2011,365), MAKEDATE(2014,365);</userinput>
+ -> '2011-12-31', '2014-12-31'
+mysql> <userinput>SELECT MAKEDATE(2011,0);</userinput>
-> NULL
</programlisting>
</listitem>
@@ -9181,7 +9181,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT MINUTE('98-02-03 10:05:03');</userinput>
+mysql> <userinput>SELECT MINUTE('2008-02-03 10:05:03');</userinput>
-> 5
</programlisting>
</listitem>
@@ -9216,7 +9216,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT MONTH('1998-02-03');</userinput>
+mysql> <userinput>SELECT MONTH('2008-02-03');</userinput>
-> 2
</programlisting>
</listitem>
@@ -9251,7 +9251,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT MONTHNAME('1998-02-05');</userinput>
+mysql> <userinput>SELECT MONTHNAME('2008-02-03');</userinput>
-> 'February'
</programlisting>
</listitem>
@@ -9366,8 +9366,8 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT PERIOD_ADD(9801,2);</userinput>
- -> 199803
+mysql> <userinput>SELECT PERIOD_ADD(200801,2);</userinput>
+ -> 200803
</programlisting>
</listitem>
@@ -9404,7 +9404,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT PERIOD_DIFF(9802,199703);</userinput>
+mysql> <userinput>SELECT PERIOD_DIFF(200802,200703);</userinput>
-> 11
</programlisting>
</listitem>
@@ -9437,7 +9437,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT QUARTER('98-04-01');</userinput>
+mysql> <userinput>SELECT QUARTER('2008-04-01');</userinput>
-> 2
</programlisting>
</listitem>
@@ -10135,13 +10135,13 @@
Remember that MySQL converts two-digit year values in dates to
four-digit form using the rules in
<xref linkend="date-and-time-types"/>. For example,
- <literal>'1997-10-07'</literal> and
- <literal>'97-10-07'</literal> are seen as identical dates:
+ <literal>'2008-10-07'</literal> and
+ <literal>'08-10-07'</literal> are seen as identical dates:
</para>
<programlisting>
-mysql> <userinput>SELECT TO_DAYS('1997-10-07'), TO_DAYS('97-10-07');</userinput>
- -> 729669, 729669
+mysql> <userinput>SELECT TO_DAYS('2008-10-07'), TO_DAYS('08-10-07');</userinput>
+ -> 733687, 733687
</programlisting>
</listitem>
@@ -10402,14 +10402,8 @@
<colspec colwidth="50*"/>
<tbody>
<row>
- <entry/>
- <entry><emphasis role="bold">First day</emphasis></entry>
- <entry/>
- <entry/>
- </row>
- <row>
<entry><emphasis role="bold">Mode</emphasis></entry>
- <entry><emphasis role="bold">of week</emphasis></entry>
+ <entry><emphasis role="bold">First day of week</emphasis></entry>
<entry><emphasis role="bold">Range</emphasis></entry>
<entry><emphasis role="bold">Week 1 is the first week …</emphasis></entry>
</row>
@@ -10468,13 +10462,13 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT WEEK('1998-02-20');</userinput>
+mysql> <userinput>SELECT WEEK('2008-02-20');</userinput>
-> 7
-mysql> <userinput>SELECT WEEK('1998-02-20',0);</userinput>
+mysql> <userinput>SELECT WEEK('2008-02-20',0);</userinput>
-> 7
-mysql> <userinput>SELECT WEEK('1998-02-20',1);</userinput>
+mysql> <userinput>SELECT WEEK('2008-02-20',1);</userinput>
-> 8
-mysql> <userinput>SELECT WEEK('1998-12-31',1);</userinput>
+mysql> <userinput>SELECT WEEK('2008-12-31',1);</userinput>
-> 53
</programlisting>
@@ -10594,7 +10588,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT WEEKOFYEAR('1998-02-20');</userinput>
+mysql> <userinput>SELECT WEEKOFYEAR('2008-02-20');</userinput>
-> 8
</programlisting>
</listitem>
@@ -10627,7 +10621,8 @@
<remark role="help-example"/>
<programlisting>
- -> 2008
+mysql> <userinput>SELECT YEAR('1987-01-01');</userinput>
+ -> 1987
</programlisting>
</listitem>
Modified: trunk/refman-6.0/data-types.xml
===================================================================
--- trunk/refman-6.0/data-types.xml 2008-08-19 15:56:08 UTC (rev 11576)
+++ trunk/refman-6.0/data-types.xml 2008-08-19 19:31:15 UTC (rev 11577)
Changed blocks: 4, Lines Added: 11, Lines Deleted: 11; 3100 bytes
@@ -2561,7 +2561,7 @@
date. By setting the SQL mode to the appropriate value, you can
specify more exactly what kind of dates you want MySQL to support.
(See <xref linkend="server-sql-mode"/>.) You can get MySQL to
- accept certain dates, such as <literal>'1999-11-31'</literal>, by
+ accept certain dates, such as <literal>'2009-11-31'</literal>, by
using the <literal>ALLOW_INVALID_DATES</literal> SQL mode. This is
useful when you want to store a <quote>possibly wrong</quote>
value which the user has specified (for example, in a web form) in
@@ -2573,8 +2573,8 @@
<literal>DATETIME</literal> column. This is extremely useful for
applications that need to store a birthdate for which you do not
know the exact date. In this case, you simply store the date as
- <literal>'1999-00-00'</literal> or
- <literal>'1999-01-00'</literal>. If you store dates such as these,
+ <literal>'2009-00-00'</literal> or
+ <literal>'2009-01-00'</literal>. If you store dates such as these,
you should not expect to get correct results for functions such as
<function role="sql">DATE_SUB()</function> or
<function role="sql">DATE_ADD()</function> that require complete
@@ -2853,10 +2853,10 @@
<literal>'YYYYMMDDHHMMSS'</literal> or
<literal>'YYMMDDHHMMSS'</literal> format, provided that the
string makes sense as a date. For example,
- <literal>'19970523091528'</literal> and
- <literal>'970523091528'</literal> are interpreted as
- <literal>'1997-05-23 09:15:28'</literal>, but
- <literal>'971122129015'</literal> is illegal (it has a
+ <literal>'20070523091528'</literal> and
+ <literal>'070523091528'</literal> are interpreted as
+ <literal>'2007-05-23 09:15:28'</literal>, but
+ <literal>'071122129015'</literal> is illegal (it has a
nonsensical minute part) and becomes <literal>'0000-00-00
00:00:00'</literal>.
</para>
@@ -2867,10 +2867,10 @@
As a string with no delimiters in either
<literal>'YYYYMMDD'</literal> or <literal>'YYMMDD'</literal>
format, provided that the string makes sense as a date. For
- example, <literal>'19970523'</literal> and
- <literal>'970523'</literal> are interpreted as
- <literal>'1997-05-23'</literal>, but
- <literal>'971332'</literal> is illegal (it has nonsensical
+ example, <literal>'20070523'</literal> and
+ <literal>'070523'</literal> are interpreted as
+ <literal>'2007-05-23'</literal>, but
+ <literal>'071332'</literal> is illegal (it has nonsensical
month and day parts) and becomes
<literal>'0000-00-00'</literal>.
</para>
Modified: trunk/refman-6.0/functions-core.xml
===================================================================
--- trunk/refman-6.0/functions-core.xml 2008-08-19 15:56:08 UTC (rev 11576)
+++ trunk/refman-6.0/functions-core.xml 2008-08-19 19:31:15 UTC (rev 11577)
Changed blocks: 28, Lines Added: 61, Lines Deleted: 66; 11868 bytes
@@ -7825,8 +7825,7 @@
</programlisting>
<para>
- Note that the query also selects rows with dates that lie in the
- future.
+ The query also selects rows with dates that lie in the future.
</para>
<para>
@@ -7840,10 +7839,11 @@
only once per query at the start of query execution. This means
that multiple references to a function such as
<function role="sql">NOW()</function> within a single query always
- produce the same result (for our purposes a single query also
- includes a call to a stored routine or trigger and all
- sub-routines called by that routine/trigger). This principle also
- applies to <function role="sql">CURDATE()</function>,
+ produce the same result. (For our purposes, a single query also
+ includes a call to a stored program (stored routine, trigger, or
+ event) and all sub-programs called by that program.) This
+ principle also applies to
+ <function role="sql">CURDATE()</function>,
<function role="sql">CURTIME()</function>,
<function role="sql">UTC_DATE()</function>,
<function role="sql">UTC_TIME()</function>,
@@ -7867,7 +7867,8 @@
Some date functions can be used with <quote>zero</quote> dates or
incomplete dates such as <literal>'2001-11-00'</literal>, whereas
others cannot. Functions that extract parts of dates typically
- work with incomplete dates. For example:
+ work with incomplete dates and thus can return 0 when you might
+ otherwise expect a non-zero value. For example:
</para>
<programlisting>
@@ -7923,10 +7924,10 @@
</para>
<programlisting>
-mysql> <userinput>SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);</userinput>
- -> '1998-02-02'
-mysql> <userinput>SELECT ADDDATE('1998-01-02', INTERVAL 31 DAY);</userinput>
- -> '1998-02-02'
+mysql> <userinput>SELECT DATE_ADD('2008-01-02', INTERVAL 31 DAY);</userinput>
+ -> '2008-02-02'
+mysql> <userinput>SELECT ADDDATE('2008-01-02', INTERVAL 31 DAY);</userinput>
+ -> '2008-02-02'
</programlisting>
<para>
@@ -7940,8 +7941,8 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT ADDDATE('1998-01-02', 31);</userinput>
- -> '1998-02-02'
+mysql> <userinput>SELECT ADDDATE('2008-01-02', 31);</userinput>
+ -> '2008-02-02'
</programlisting>
</listitem>
@@ -7976,8 +7977,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT ADDTIME('2007-12-31 23:59:59.999999',</userinput>
- -> <userinput>'1 1:1:1.000002');</userinput>
+mysql> <userinput>SELECT ADDTIME('2007-12-31 23:59:59.999999', '1 1:1:1.000002');</userinput>
-> '2008-01-02 01:01:01.000001'
mysql> <userinput>SELECT ADDTIME('01:00:00.999999', '02:00:00.999998');</userinput>
-> '03:00:01.999997'
@@ -8555,8 +8555,8 @@
<programlisting>
mysql> <userinput>SELECT 6/4;</userinput>
-> 1.5000
-mysql> <userinput>SELECT DATE_ADD('1999-01-01', INTERVAL 6/4 HOUR_MINUTE);</userinput>
- -> '1999-01-04 12:20:00'
+mysql> <userinput>SELECT DATE_ADD('2009-01-01', INTERVAL 6/4 HOUR_MINUTE);</userinput>
+ -> '2009-01-04 12:20:00'
</programlisting>
<para>
@@ -8582,10 +8582,10 @@
</para>
<programlisting>
-mysql> <userinput>SELECT DATE_ADD('1999-01-01', INTERVAL 1 DAY);</userinput>
- -> '1999-01-02'
-mysql> <userinput>SELECT DATE_ADD('1999-01-01', INTERVAL 1 HOUR);</userinput>
- -> '1999-01-01 01:00:00'
+mysql> <userinput>SELECT DATE_ADD('2013-01-01', INTERVAL 1 DAY);</userinput>
+ -> '2013-01-02'
+mysql> <userinput>SELECT DATE_ADD('2013-01-01', INTERVAL 1 HOUR);</userinput>
+ -> '2013-01-01 01:00:00'
</programlisting>
<para>
@@ -8597,8 +8597,8 @@
</para>
<programlisting>
-mysql> <userinput>SELECT DATE_ADD('1998-01-30', INTERVAL 1 MONTH);</userinput>
- -> '1998-02-28'
+mysql> <userinput>SELECT DATE_ADD('2009-01-30', INTERVAL 1 MONTH);</userinput>
+ -> '2009-02-28'
</programlisting>
<para>
@@ -8807,7 +8807,7 @@
<para>
Ranges for the month and day specifiers begin with zero due to
the fact that MySQL allows the storing of incomplete dates
- such as <literal>'2004-00-00'</literal>.
+ such as <literal>'2014-00-00'</literal>.
</para>
<para>
@@ -8927,8 +8927,8 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT DAYNAME('1998-02-05');</userinput>
- -> 'Thursday'
+mysql> <userinput>SELECT DAYNAME('2007-02-03');</userinput>
+ -> 'Saturday'
</programlisting>
</listitem>
@@ -8963,7 +8963,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT DAYOFMONTH('1998-02-03');</userinput>
+mysql> <userinput>SELECT DAYOFMONTH('2007-02-03');</userinput>
-> 3
</programlisting>
</listitem>
@@ -8997,8 +8997,8 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT DAYOFWEEK('1998-02-03');</userinput>
- -> 3
+mysql> <userinput>SELECT DAYOFWEEK('2007-02-03');</userinput>
+ -> 7
</programlisting>
</listitem>
@@ -9030,7 +9030,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT DAYOFYEAR('1998-02-03');</userinput>
+mysql> <userinput>SELECT DAYOFYEAR('2007-02-03');</userinput>
-> 34
</programlisting>
</listitem>
@@ -9066,11 +9066,11 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT EXTRACT(YEAR FROM '1999-07-02');</userinput>
- -> 1999
-mysql> <userinput>SELECT EXTRACT(YEAR_MONTH FROM '1999-07-02 01:02:03');</userinput>
- -> 199907
-mysql> <userinput>SELECT EXTRACT(DAY_MINUTE FROM '1999-07-02 01:02:03');</userinput>
+mysql> <userinput>SELECT EXTRACT(YEAR FROM '2009-07-02');</userinput>
+ -> 2009
+mysql> <userinput>SELECT EXTRACT(YEAR_MONTH FROM '2009-07-02 01:02:03');</userinput>
+ -> 200907
+mysql> <userinput>SELECT EXTRACT(DAY_MINUTE FROM '2009-07-02 01:02:03');</userinput>
-> 20102
mysql> <userinput>SELECT EXTRACT(MICROSECOND</userinput>
-> <userinput>FROM '2003-01-02 10:30:00.000123');</userinput>
@@ -9190,8 +9190,8 @@
<primary>GET_FORMAT()</primary>
</indexterm>
- <function role="sql">GET_FORMAT(DATE|TIME|DATETIME,
- 'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL')</function>
+ <function role="sql">GET_FORMAT({DATE|TIME|DATETIME},
+ {'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL'})</function>
</para>
<remark role="help-syntax-end"/>
@@ -9497,11 +9497,11 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT MAKEDATE(2001,31), MAKEDATE(2001,32);</userinput>
- -> '2001-01-31', '2001-02-01'
-mysql> <userinput>SELECT MAKEDATE(2001,365), MAKEDATE(2004,365);</userinput>
- -> '2001-12-31', '2004-12-30'
-mysql> <userinput>SELECT MAKEDATE(2001,0);</userinput>
+mysql> <userinput>SELECT MAKEDATE(2011,31), MAKEDATE(2011,32);</userinput>
+ -> '2011-01-31', '2011-02-01'
+mysql> <userinput>SELECT MAKEDATE(2011,365), MAKEDATE(2014,365);</userinput>
+ -> '2011-12-31', '2014-12-31'
+mysql> <userinput>SELECT MAKEDATE(2011,0);</userinput>
-> NULL
</programlisting>
</listitem>
@@ -9602,7 +9602,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT MINUTE('98-02-03 10:05:03');</userinput>
+mysql> <userinput>SELECT MINUTE('2008-02-03 10:05:03');</userinput>
-> 5
</programlisting>
</listitem>
@@ -9637,7 +9637,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT MONTH('1998-02-03');</userinput>
+mysql> <userinput>SELECT MONTH('2008-02-03');</userinput>
-> 2
</programlisting>
</listitem>
@@ -9672,7 +9672,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT MONTHNAME('1998-02-05');</userinput>
+mysql> <userinput>SELECT MONTHNAME('2008-02-03');</userinput>
-> 'February'
</programlisting>
</listitem>
@@ -9787,8 +9787,8 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT PERIOD_ADD(9801,2);</userinput>
- -> 199803
+mysql> <userinput>SELECT PERIOD_ADD(200801,2);</userinput>
+ -> 200803
</programlisting>
</listitem>
@@ -9825,7 +9825,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT PERIOD_DIFF(9802,199703);</userinput>
+mysql> <userinput>SELECT PERIOD_DIFF(200802,200703);</userinput>
-> 11
</programlisting>
</listitem>
@@ -9858,7 +9858,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT QUARTER('98-04-01');</userinput>
+mysql> <userinput>SELECT QUARTER('2008-04-01');</userinput>
-> 2
</programlisting>
</listitem>
@@ -10556,13 +10556,13 @@
Remember that MySQL converts two-digit year values in dates to
four-digit form using the rules in
<xref linkend="date-and-time-types"/>. For example,
- <literal>'1997-10-07'</literal> and
- <literal>'97-10-07'</literal> are seen as identical dates:
+ <literal>'2008-10-07'</literal> and
+ <literal>'08-10-07'</literal> are seen as identical dates:
</para>
<programlisting>
-mysql> <userinput>SELECT TO_DAYS('1997-10-07'), TO_DAYS('97-10-07');</userinput>
- -> 729669, 729669
+mysql> <userinput>SELECT TO_DAYS('2008-10-07'), TO_DAYS('08-10-07');</userinput>
+ -> 733687, 733687
</programlisting>
</listitem>
@@ -10823,14 +10823,8 @@
<colspec colwidth="50*"/>
<tbody>
<row>
- <entry/>
- <entry><emphasis role="bold">First day</emphasis></entry>
- <entry/>
- <entry/>
- </row>
- <row>
<entry><emphasis role="bold">Mode</emphasis></entry>
- <entry><emphasis role="bold">of week</emphasis></entry>
+ <entry><emphasis role="bold">First day of week</emphasis></entry>
<entry><emphasis role="bold">Range</emphasis></entry>
<entry><emphasis role="bold">Week 1 is the first week …</emphasis></entry>
</row>
@@ -10889,13 +10883,13 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT WEEK('1998-02-20');</userinput>
+mysql> <userinput>SELECT WEEK('2008-02-20');</userinput>
-> 7
-mysql> <userinput>SELECT WEEK('1998-02-20',0);</userinput>
+mysql> <userinput>SELECT WEEK('2008-02-20',0);</userinput>
-> 7
-mysql> <userinput>SELECT WEEK('1998-02-20',1);</userinput>
+mysql> <userinput>SELECT WEEK('2008-02-20',1);</userinput>
-> 8
-mysql> <userinput>SELECT WEEK('1998-12-31',1);</userinput>
+mysql> <userinput>SELECT WEEK('2008-12-31',1);</userinput>
-> 53
</programlisting>
@@ -11015,7 +11009,7 @@
<remark role="help-example"/>
<programlisting>
-mysql> <userinput>SELECT WEEKOFYEAR('1998-02-20');</userinput>
+mysql> <userinput>SELECT WEEKOFYEAR('2008-02-20');</userinput>
-> 8
</programlisting>
</listitem>
@@ -11048,7 +11042,8 @@
<remark role="help-example"/>
<programlisting>
- -> 2008
+mysql> <userinput>SELECT YEAR('1987-01-01');</userinput>
+ -> 1987
</programlisting>
</listitem>
| Thread |
|---|
| • svn commit - mysqldoc@docsrva: r11577 - in trunk: . dynamic-docs/opsfunctions refman-4.1 refman-5.0 refman-5.1 refman-6.0 | paul.dubois | 19 Aug |