Oracle SQL将数据从日期范围/期间迁移到几个月

时间:2018-01-22 15:23:15

标签: sql database oracle date migration

我在将数据从一个表迁移到另一个表时遇到了一些问题。我使用的是Oracle 11数据库。在我的问题中,一个表列出了一些在特定日期范围(开始日期和结束日期)中有效的值。应将数据迁移到的另一个表应该每月说明这些值(MMYYY)。因此,对于特定的时间范围(例如2010年1月1日至2010年12月31日),应每月说明数据(01 / 2010,102 / 2010,...,2010年7月)。我试图为这种情况创建一个合适的sql insert语句,但我没有成功。

示例:

表1具有以下属性:ID(PK),START_DATE,END_DATE,VALUE

表2具有以下属性:ID(PK),MONTH,YEAR,VALUE

表1:

  • ID = 1,START_DATE = 01/01/2010,END_DATE = 31/12/2015,VALUE = 5
  • ID = 2,START_DATE = 01/01/2012,END_DATE = 31/12/2013,VALUE = 10
  • ID = 3,START_DATE = 01/01/201,END_DATE = 31/12/2020,VALUE = 15

这些条目在新表中应如下所示:

表2:

  • ID = 1,MONTH = 01,YEAR = 2010,VALUE = 5
  • ID = 1,MONTH = 02,YEAR = 2010,VALUE = 5
  • ID = 1,MONTH = 03,YEAR = 2010,VALUE = 5
  • ...
  • ID = 1,MONTH = 12,YEAR = 2015,VALUE = 5
  • ID = 2,MONTH = 01,YEAR = 2012,VALUE = 10
  • ID = 2,MONTH = 02,YEAR = 2012,VALUE = 10
  • ID = 2,MONTH = 03,YEAR = 2012,VALUE = 10
  • ...
  • ID = 2,MONTH = 12,YEAR = 2013,VALUE = 10
  • ID = 3,MONTH = 01,YEAR = 2018,VALUE = 15
  • ID = 3,MONTH = 02,YEAR = 2018,VALUE = 15
  • ID = 3,MONTH = 03,YEAR = 2018,VALUE = 15
  • ...
  • ID = 3,MONTH = 12,YEAR = 2020,VALUE = 15

有最好的做法吗?或者有人有想法吗?谢谢你的建议!

1 个答案:

答案 0 :(得分:0)

使用TO_DATE转换字段('mm / yyyy') 您可以在此处找到更多信息:https://www.techonthenet.com/oracle/functions/to_date.php