0

我在 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格式对应的同月开始日期和结束日期

4

1 回答 1

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;

基本上,您可以通过使用模型格式获得一个月的第一天TRUNCMM因此月份之后的所有内容都将被截断(因此将设置为 1)。

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

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

于 2013-10-29T21:39:32.347 回答