![]() |
|
Модераторы: Akella |
![]()
|
|
| pavelv |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 5.2.2006 Репутация: нет Всего: нет |
При выполнении запроса выдаёт дату в формате: YYYY-MM-DD.
Запрос:
Думал функцией to_char, но не работает. Можно конечно отдельно день, месяц и год извлечь но может можно как-нибудь по человечески одной функцией. |
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
можно, udf.
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| pavelv |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 5.2.2006 Репутация: нет Всего: нет |
А стандартного нет ничего?
|
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
попробуй написать процедуру, которая будет форматировать дату и возвращать в нужно формате
Добавлено через 3 минуты и 26 секунд http://www.sql.ru/forum/actualthread.aspx?tid=566229 |
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
pavelv, а может на клиенте отформатировать? -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
доведёшь до кондиции
Добавлено @ 11:20 ну дык грид тебе и покажет дату так, как ты установил в настройках системы Это сообщение отредактировал(а) Akella - 23.6.2008, 11:21 |
|||
|
||||
| Deniz |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
а смысл?
Сначало-то было:
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
||||||
|
|||||||
| Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
ого, а зачем соединять-то? а может можно как-то так?
Это сообщение отредактировал(а) Akella - 23.6.2008, 16:10 |
||||
|
|||||
| pavelv |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 5.2.2006 Репутация: нет Всего: нет |
Akella да такой вариант рассматривал. Сделал, но не понравилось:
1) Громоздкость 2) Сегодняшний день выглядит так:24.6.2008, а хотелось бы 24.06.2008. Переделать не проблема, условие вставить фигня...но ещё больше усложнять изначально такой тривиальный запрос не хотелось По настройкам даты всё впорядке, если выполнить запрос в таком виде:
то дата выдаётся в нужном формате, именно при конкатенации почему-то формат меняется...хотя собственно понятно почему. Спросил потому что думал может чего не знаю и наверняка можно форматировать дату непосредственно при выводе. В итоге забил и сделал банальное условие после выполнения запроса непосредственно в delph-ах. И красивее и понято чего хочется... За советы всем спасибо конечно |
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
Вот и автор появился пока я писал ответ.
Это сообщение отредактировал(а) Deniz - 24.6.2008, 05:17 -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
||||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
потому что выполняется cast(date as varchar(25)) и в строку преобразовывает сам FireBird по своим форматам. Где их можно настроить не знаю
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| pavelv |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 5.2.2006 Репутация: нет Всего: нет |
Долго не заходил, Deniz у меня таже идея была. Тоесть при обычном выводе используются настройки винды, а при конкатенации настройки sql-сервера вот и происходит фигня какая-то
|
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
не совсем так. Форматирует тот клиент, из которого запускаешь запрос, и в большинстве случаев все форматы можно настроить "под себя".
Если память не изменяет, была такая утилита WSQL еще в InterBase 5.x, так вот она выводила дату по формату InterBase. -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
я думал, что Firebird берет данные тоже из настроек ОС Добавлено через 1 минуту и 18 секунд
да, на клиенте можно, а на сервре как? |
||||
|
|||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
так вроде написали уже все, можно udf, можно процедурой.
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
а может в конфиге сервера есть настройка форматов дат?
|
|||
|
||||
| alexeybarkalov |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 6.8.2011 Репутация: нет Всего: нет |
тот же вопрос стал интересовать - неужели в самом select'e Firebird'у нельзя сказать в каком формате выводить дату при её конкатенации, мне бы хотелось бы в таком формате YYYY.MM.DD
|
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
Нет. Форматируй на клиенте или сделай себе процедуру, как я описал пример выше с extract
|
|||
|
||||
| tishaishii |
|
||||
![]() Создатель ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1262 Регистрация: 14.2.2006 Где: Москва Репутация: нет Всего: 8 |
Держи UDF с исходниками.
Установка: "Project2.dll" поместить в папку с UDF Firebird ( у меня это "C:\Program Files\Firebird\Firebird_2_5\UDF" ). В IBExpert выполнить код:
После этого можно выполнять запросы вроде:
Документация по формату шаблона: http://docwiki.embarcadero.com/Libraries/e....FormatDateTime Идея взята отсюда: http://www.ibase.ru/devinfo/udf_ok.htm Добавлено @ 11:05 Возможно, CHARACTER SET нужно указать свой. У меня всегда UTF8. Это сообщение отредактировал(а) tishaishii - 12.8.2012, 11:07 Присоединённый файл ( Кол-во скачиваний: 5 )
Project.7z 40,94 Kb |
||||
|
|||||
![]()
|
| Правила форума "Interbase" | |
|
|
Обязательно указание: 1. Версию InterBase (Firebird, Yaffil) 2. Способа доступа (ADO, BDE, IBX и т.д.)
Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Firebird, Interbase | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |