簡體   English   中英

如何根據oracle sql中給定的月份和年份創建日期列?

[英]How to create Date column from month and year given in oracle sql?

我想創建一個日期列,它需要“年”和“月”,並給我一個從 1 日開始的日期

E_name  s_date      year  month
  a    01-08-2012   2012   MAR
  a    23-06-2012   2010   DEC 
  a    19-03-2020   2020   DEC
  a    14-02-2020   2020   MAR
  b    27-12-2018   2018   DEC

所需輸出

E_name  s_date      year  month  Date
  a    01-08-2012   2012   MAR   01-03-2012
  a    23-06-2012   2010   DEC   01-12-2010
  a    19-03-2020   2020   DEC   01-12-2020
  a    14-02-2020   2020   MAR   01-03-2020
  b    27-12-2018   2018   DEC   01-12-2018

  

連接yearmonth列,然后使用TO_DATE

SELECT t.*,
       TO_DATE(month || year, 'MONYYYY', 'NLS_DATE_LANGUAGE=American') AS "Date"
FROM   table_name t

其中,對於您的示例數據:

CREATE TABLE table_name (E_name, s_date, year, month) AS
SELECT 'a', DATE '2012-08-01', 2012, 'MAR' FROM DUAL UNION ALL
SELECT 'a', DATE '2012-06-23', 2010, 'DEC' FROM DUAL UNION ALL
SELECT 'a', DATE '2020-03-19', 2020, 'DEC' FROM DUAL UNION ALL
SELECT 'a', DATE '2020-02-14', 2020, 'MAR' FROM DUAL UNION ALL
SELECT 'b', DATE '2018-12-27', 2018, 'DEC' FROM DUAL;

輸出:

E_NAME 日期 日期
一種 01-08-2012 2012年 馬爾 01-03-2012
一種 23-06-2012 2010年 十二月 01-12-2010
一種 19-03-2020 2020年 十二月 01-12-2020
一種 14-02-2020 2020年 馬爾 01-03-2020
27-12-2018 2018年 十二月 01-12-2018

db<> 在這里擺弄

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM