<?xml version="1.0" encoding="utf-8"?> 
<?xml-stylesheet type="text/xsl" href="topic_template.xsl"?> 
<topic>
<category>fbudf</category>
<ref_entry>ADDYEAR()</ref_entry>
<creator date="2003/10/31 21:43:53">山田健一</creator>
<modified />
<definition>日時形式に指定年数を追加する
</definition>
<structure>
<function>
<name>ADDYEAR</name>
<args>
<a><var>date</var></a>
<a><var>add</var></a>
</args>
</function>
</structure>
<arguments>
<argument>
<name><var>date</var></name><description>date型、timestamp型の列または式</description>
</argument>
<argument>
<name><var>add</var></name><description>数値データ型の列または式</description>
</argument>
</arguments>
<declaration>declare external function addYear
timestamp, int
returns timestamp
entry_point 'addYear' module_name 'fbudf';</declaration>
<description><var>date</var>の<var>add</var>年後を返します。2月29日のn年後が存在しないときは3月1日になります。<br />
<var>add</var>はマイナスも可能です。</description>
<examples>
<example>
<!--SEQ = 1-->
<description>1年後を求めます。時刻部分は変化しません。</description>
<samplecode>SELECT ADDYEAR(GETEXACTTIMESTAMP(),1) FROM RDB$DATABASE;</samplecode>
<result>2004-10-31 21:36:43.0000</result>
</example>
<example>
<!--SEQ = 2-->
<description><var>add</var>に小数を指定すると整数に丸められてから加算されます。</description>
<samplecode>SELECT ADDYEAR(GETEXACTTIMESTAMP(),1.4),ADDYEAR(GETEXACTTIMESTAMP(),1.5) FROM RDB$DATABASE;</samplecode>
<result>2004-10-31 21:36:43.0000  2005-10-31 21:36:43.0000</result>
</example>
<example>
<!--SEQ = 3-->
<description>1年前を求めます。時刻部分は変化しません。</description>
<samplecode>SELECT ADDYEAR(GETEXACTTIMESTAMP(),-1) FROM RDB$DATABASE;</samplecode>
<result>2002-10-31 21:36:43.0000</result>
</example>
<example>
<!--SEQ = 4-->
<description>2000-02-29の1年後を求めます。</description>
<samplecode>SELECT ADDYEAR(CAST('2000-02-29' AS DATE),1) FROM RDB$DATABASE;</samplecode>
<result>2001-03-01 00:00:00.0000</result>
</example>
<example>
<!--SEQ = 5-->
<description>2000-02-29の1年前を求めます。</description>
<samplecode>SELECT ADDYEAR(CAST('2000-02-29' AS DATE),-1) FROM RDB$DATABASE;</samplecode>
<result>1999-03-01 00:00:00.0000</result>
</example>
<example>
<!--SEQ = 6-->
<description>2000-02-29の4年後を求めます。</description>
<samplecode>SELECT ADDYEAR(CAST('2000-02-29' AS DATE),4) FROM RDB$DATABASE;</samplecode>
<result>2004-02-29 00:00:00.0000</result>
</example>
<example>
<!--SEQ = 7-->
<description>2000-02-29の4年前を求めます。</description>
<samplecode>SELECT ADDYEAR(CAST('2000-02-29' AS DATE),-4) FROM RDB$DATABASE;</samplecode>
<result>1996-02-29 00:00:00.0000</result>
</example>
</examples>
<see_also>
<keyword name="udf_addday">ADDDAY()</keyword>
<keyword name="udf_addmonth">ADDMONTH()</keyword>
<keyword name="udf_addweek">ADDWEEK()</keyword>
</see_also>
</topic>
