给出任何日期的一个月的第一个和最后一个日期

时间:2013-10-29 21:23:57

标签: sql date oracle11g

我在oracle中以yyyy-mm-dd格式约会。是否有可能从以下方面得到:
1.具体日期1年前以yyyy-mm-dd格式(所以:2013-02-01 - > 2012-02-01和2013-02-28 - > 2012-02-29)
2. yyyy-mm-dd格式的同月的相应开始日期和结束日期

1 个答案:

答案 0 :(得分:1)

试试这个:

SELECT
  TRUNC(DATE '2013-02-01', 'MM') - INTERVAL '1' YEAR AS one_year_ago_first_day,
  LAST_DAY(TRUNC(DATE '2013-02-28', 'MM') - INTERVAL '1' YEAR) AS one_year_ago_last_day,
  TRUNC(DATE '2013-02-11', 'MM'),
  LAST_DAY(DATE '2013-02-11')
FROM
  dual;

基本上,您可以使用带有TRUNC模型格式的MM来获取一个月的第一天,因此一切都会被截断(因此日期将设置为1)。

LAST_DAY - 这个返回作为参数给出的日期月份中最后一天的日期。

您还可以使用INTERVAL数据类型并从给定日期减去它。