Вобщем путём проб и ошибок, чтения мануалов и пр. пришёл к, как мне кажется довольно симпатичному решению. Обошёлся без процедуры.
Запрос в итоге выглядит так:
PHP:
SELECT CAST(lpad(EXTRACT(DAY FROM TS11_DATE),2,'0') AS varchar(2))||'-'|| CAST(lpad(EXTRACT(MONTH FROM TS11_DATE),2,'0') AS varchar(2))||'-'|| EXTRACT(YEAR FROM TS11_DATE) AS FDATE FROM TS11_DAY_ARCH
Что тут у нас происходит. Начну изнутри наружу. Extract - вытягиваем из TS11_DATE (дата) сначала день, потом месяц, потом год. Extract вытягивает месяца и дни в формате 1-12 и 1-31, а нам надо 01-12 и 01-31. Поэтому Lpad - добавляет к дням и месяцам где это требуется 0 слева. Но встала проблема в одном запросе несколько lpad не отрабатывал по причине того, что в FB и IB ghbcencndetn ограничение на вывод строкового результата 64 кб. Что уж там Lpad сотворил, но в моём случае этот лимит был исчерпан и на него база ругалась. Поэтому CAST - преобразовал в варчар длиной в 2. Конкатенируем посредством || и ставим там разделители (у меня ".") назначаем всё это на FDATE. Обращаемся к дате через FDATE. Дата получается вида 00.00.0000. Вуаля, заработало.
Плюс в этом же запросе вы можете запросить все нужные вам поля через запятую, но * в этом случае не работает (а в Mysql работает), условия where пишите в конце какие вам нужны.
Думаю, что кому нибудь это будет полезно. Firebird честно говоря смутил осутствием нормального форматирования даты, (в сравнении с MySql). Во многих местах предлагают писать процедуру либо качать библиотеку для FB c уже написанными для FB функциями форматирования. Но не всегда можно запросто установить библиотеку, поэтому вот такие танцы с бубнами..