Еще раз по поводу дат

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
Влад_vlad
Сообщения: 4
Зарегистрирован: 17 апр 2006, 12:27

Еще раз по поводу дат

Сообщение Влад_vlad » 17 апр 2006, 12:35

В вопросе "Работа с датами в FB" - смысл ответа - "получи дату и работай в программе". Это все прекрасно - но если есть вычисляемое поле типа:

Код: Выделить всё

ALLBORN COMPUTED BY (DATEBORN||' '||MESTOBORN)
то при получении из программы имеем 17-Apr-2006 + текст. Есть ли возможность конвертировать дату в 17.04.2006 не в программе?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 17 апр 2006, 13:15

только посредством udf. формат преобразования даты из двоичного вида в текст на сервере жестко задан, менять его нельзя, и кроме того, он еще зависит от диалекта (1 или 3).
В третьем диалекте будет yyyy-mm-dd.

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 17 апр 2006, 13:32

На экстрактах можно извратиться. Только на фига. Серверу - серверово, клиенту - клиентово, и будет всё и шустренько и удобненько.

Влад_vlad
Сообщения: 4
Зарегистрирован: 17 апр 2006, 12:27

Сообщение Влад_vlad » 17 апр 2006, 16:28

kdv - спасибо. Я так и думал - но все же надеялся...
Merlin - "клиенту - клиентово" - я не хочу создавать на клиенте вычисляемое поле только из-за даты. Это самый простой вариант - но не элегантно. Хотел бы, что бы это делал сервер. И не хочу на клиенте интерпретировать строку. "На экстрактах можно извратиться" - не понял - как? Все таки можно?

Klyk
Сообщения: 100
Зарегистрирован: 26 окт 2004, 23:28

Сообщение Klyk » 18 апр 2006, 23:39

Влад_vlad писал(а):"На экстрактах можно извратиться" - не понял - как? Все таки можно?
наверно что-то вроде

select
extract(day from table1.date_field) ||'.'||
extract(month from table1.date_field) ||'.'||
extract(year from table1.date_field)||' '||
table1.Text_Field
from table1

хотя незнаю как оно на 1 диалекте FB будет работать.

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 19 апр 2006, 00:15

Да будет, куда оно денется... и три обращения к встроенной функции на сервере плюс три неявных преобразования типа плюс три конкатенации - это, конешно, куда как элегантнее одного обращения к функции форматирования даты на клиенте.

Влад_vlad
Сообщения: 4
Зарегистрирован: 17 апр 2006, 12:27

Сообщение Влад_vlad » 19 апр 2006, 20:05

Merlin писал(а): ...это, конешно, куда как элегантнее ...
В таком варианте - согласен. Но это совсем не то, что я спрашивал - про Select речь и не шла, вопрос - как получить в вычисляемом поле.
Все равно - спасибо.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 19 апр 2006, 20:52

как получить в вычисляемом поле.
udf

Влад_vlad
Сообщения: 4
Зарегистрирован: 17 апр 2006, 12:27

Сообщение Влад_vlad » 20 апр 2006, 08:28

Спасибо.

Ответить