У меня есть (Postgre) SQL-таблица, в которой даты хранятся следующим образом
YEAR B-MONTH E-MONTH
2000 01 05
2004 03 06
2010 07 12
2004 01 12
Как я могу превратить их в «реальные» поля даты?Я бы хотел, чтобы результат выглядел так:
BEGIN END
2000-01-01 2000-05-31
2004-03-01 2004-06-30
2010-07-01 2010-12-31
2004-01-01 2004-12-31
Заранее спасибо!
[решение]
Это решениеЯ закончил с:
начало
TO_DATE(TO_CHAR("YEAR", '9999') || TO_CHAR("B-MONTH", 'FM00') || '01', 'YYYYMMDD') AS BEGIN
конец
CAST(TO_DATE(TO_CHAR("YEAR", '9999') || TO_CHAR("E-MONTH", 'FM00') || '01', 'YYYYMMDD') + INTERVAL ('1 MONTH - 1 DAY') AS DATE) AS END
[править]
Это также работает так:
begin
TO_DATE(TO_CHAR("YEAR", '9999') || TO_CHAR("B-MONTH", 'FM00'), 'YYYYMM') AS BEGIN
end
CAST(TO_DATE(TO_CHAR("YEAR", '9999') || TO_CHAR("E-MONTH", 'FM00'), 'YYYYMM') + INTERVAL ('1 MONTH - 1 DAY') AS DATE) AS END