Re: To create a Column ina Table with function - Mailing list pgsql-novice

From Albe Laurenz
Subject Re: To create a Column ina Table with function
Date
Msg-id A737B7A37273E048B164557ADEF4A58B17D2B765@ntex2010i.host.magwien.gv.at
Whole thread Raw
In response to Re: To create a Column ina Table with function  (csanyipal@gmail.com)
List pgsql-novice
csanyipal@gmail.com wrote:
>>> I have a table with columns: number, date-range.
>>> I wish to get in this table more columns: week-day-begin, week-day-end.
>>>
>>> In the week-day-begin column I wish to get automatically the weekday
>>> name of the first date in the date range.
>>>
>>> In the week-day-end column I wish to get automatically the weekday
>>> name of the last date in the date range.

>> CREATE TABLE test (i integer PRIMARY KEY, dr daterange NOT NULL);
>>
>> CREATE VIEW testview AS
>>    SELECT i, dr,
>>           EXTRACT(DOW FROM lower(dr)) AS wd_start,
>>           EXTRACT(DOW FROM upper(dr)) AS wd_end
>>    FROM test;
>>
>> INSERT INTO test VALUES (1, '[1968-10-20,2050-04-01]');
>>
>> SELECT * FROM testview;
>>
>>  i |           dr            | wd_start | wd_end
>> ---+-------------------------+----------+--------
>>  1 | [1968-10-20,2050-04-02) |        0 |      6
>> (1 row)

> Thanks, but this gives no names of weekdays but just numbers.
> 
> How can I get the name ( eg. Monday ) of the weekday in this view?

Try something like a CASE clause:

CASE EXTRACT(DOW FROM lower(dr)) WHEN 0 THEN 'Sunday' WHEN 1 THEN 'Monday' ... END

Yours,
Laurenz Albe

pgsql-novice by date:

Previous
From: csanyipal@gmail.com
Date:
Subject: Re: To create a Column ina Table with function
Next
From: Pedro Sousa
Date:
Subject: change the recording database partition