1
我一直在使用諸如{?EndDate} - INTERVAL '1' YEAR
這樣的語法一段時間了,而且我知道最終有一個問題要打到,我只是打了它。我試圖做DATE '2010-12-31' - INTERVAL '6' MONTH
,它因爲沒有6月31日而窒息。什麼是最有效和一致的方式來編碼?在追查決定以這種方式做決定的人時會更滿意,這是不切實際的。 :-)Oracle PL/SQL日期時間數學間隔
我一直在使用諸如{?EndDate} - INTERVAL '1' YEAR
這樣的語法一段時間了,而且我知道最終有一個問題要打到,我只是打了它。我試圖做DATE '2010-12-31' - INTERVAL '6' MONTH
,它因爲沒有6月31日而窒息。什麼是最有效和一致的方式來編碼?在追查決定以這種方式做決定的人時會更滿意,這是不切實際的。 :-)Oracle PL/SQL日期時間數學間隔
我不確定是否有固定的方式,因爲它肯定取決於某人認爲是6個月。但是,恕我直言,這是安全的假設,add_months
是一種標準的方式(至少在甲骨文)加上或減去月:
select add_months(DATE '2010-12-31',-6) from dual;
該表達式返回2010年6月30日(也就是最後一天在本月(如同12月31日)
他們從未聽說過2月份嗎? – 2011-01-30 14:05:55
與大多數此類性質的決定一樣,它是由委員會制定的,它是ANSI SQL的一部分(92或99,我不確定) – 2011-01-30 22:22:40