[英]How to create Date column from month and year given in oracle sql?
I want to create a date column which would take 'year' and 'month' and give me a date starts from 1st我想创建一个日期列,它需要“年”和“月”,并给我一个从 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
REQUIRED OUTPUT所需输出
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
Concatenate the year
and month
columns and then use TO_DATE
:连接year
和month
列,然后使用TO_DATE
:
SELECT t.*,
TO_DATE(month || year, 'MONYYYY', 'NLS_DATE_LANGUAGE=American') AS "Date"
FROM table_name t
Which, for your sample data:其中,对于您的示例数据:
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;
Outputs:输出:
E_NAME E_NAME S_DATE日期 YEAR年 MONTH月 Date日期 a一种 01-08-2012 01-08-2012 2012 2012年 MAR马尔 01-03-2012 01-03-2012 a一种 23-06-2012 23-06-2012 2010 2010年 DEC十二月 01-12-2010 01-12-2010 a一种 19-03-2020 19-03-2020 2020 2020年 DEC十二月 01-12-2020 01-12-2020 a一种 14-02-2020 14-02-2020 2020 2020年 MAR马尔 01-03-2020 01-03-2020 b乙 27-12-2018 27-12-2018 2018 2018年 DEC十二月 01-12-2018 01-12-2018
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.