Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Firebird, Interbase > Проблема с записью периода дат


Автор: kat809 30.1.2010, 10:58
Здравствуйте всем)
Вот возникла проблемка, наверное простая, но что-то не могу придумать, как ее решить!
Есть таблица с полями Date1, Date2 и Period. Поле Period является вычисляемым (Date1 || '-' || Date2). 
Проблема заключается в том, что даты получаются "перевернутыми" в итоге: 2010-01-01-2010-01-31, а нужно 01.01.2010-31.01.2010. 
Буду рада любой помощи, спасибо заранее)

Автор: Gluttton 30.1.2010, 11:47
Метод грубой силы smile ...
Код

CREATE TABLE T
(
    DATE1   DATE,
    DATE2   DATE,
    PERIOD  COMPUTED BY (
                EXTRACT (DAY FROM DATE1)||'.'||
                EXTRACT (MONTH FROM DATE1)||'.'||
                EXTRACT (YEAR FROM DATE1)||'-'||
                EXTRACT (DAY FROM DATE2)||'.'||
                EXTRACT (MONTH FROM DATE2)||'.'||
                EXTRACT (YEAR FROM DATE2)
            )
);

Автор: Akella 30.1.2010, 16:59
Цитата(kat809 @  30.1.2010,  10:58 Найти цитируемый пост)
даты получаются "перевернутыми"

Так на клиенте используй DisplayFormat

Автор: former 30.1.2010, 18:50
Цитата(Akella @  30.1.2010,  16:59 Найти цитируемый пост)

Так на клиенте используй DisplayFormat 

Akella, в данном случае это не поможет, ибо конкатенация.

Автор: kat809 31.1.2010, 09:49
Цитата(Gluttton @ 30.1.2010,  11:47)
Метод грубой силы smile ...

Метод грубой силы помог!Огромное спасибо!!!

Автор: Deniz 1.2.2010, 07:05
kat809, сильно сомневаюсь, что поле "Period" нужно хранить в БД.

Автор: Akella 1.2.2010, 17:12
Deniz, так оно и не хранится, оно вычисляемое

Автор: Frees 1.2.2010, 19:31
а что будет быстрее(лучше надежнее, кашернее) вычислимое поле в таблице, или VIEW с таким же вычислимом полем?

Автор: Akella 1.2.2010, 20:36
Наверное вычисляемое. Тем более, что в новых версиях птички вычисляемые поля так же легко изменяются, как и обычные через alter

Автор: Deniz 2.2.2010, 06:42
Цитата(Akella @  1.2.2010,  19:12 Найти цитируемый пост)
Deniz, так оно и не хранится, оно вычисляемое
Имелось ввиду не данные, которые в этом поле, а само поле в таблице имеет сомнительную необходимость.
имхо, лучше на клиенте это преобразовывать, да и вообще, необходимость такого преобразования ...
PS: только давайте не будем разводить дискуссию на эту тему.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)