powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Формат вывода даты
12 сообщений из 12, страница 1 из 1
Формат вывода даты
    #32573682
Siv Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго всем времени суток!
Перечитал все по форматированию даты в запросе и нашел ответ, да только частичный.
Необходимо вывести поле типа varchar и поле типа date совместно как одно. Объединяю их:
DOGOVORS.DL_NO || ' ' || DOGOVORS.DATESTART AS NUMDATE
Получаю дату в буржуйском формате: 'yyyy-mm-dd' :(
Пробую с помощью EXTRACT:
(DOGOVORS.DL_NO || ' ' || EXTRACT (DAY FROM DOGOVORS.DATESTART || '.' || EXTRACT (MONTH FROM DOGOVORS.DATESTART) || '.' || EXTRACT (YEAR FROM DOGOVORS.DATESTART)) AS NUMDATE
Получаю уже лучше: 1.2.2004. Но нуликов то нет! А хотелось бы: 01.02.2004.
Пробовал и по-другому:
DOGOVORS.DL_NO || ' ' || CAST(EXTRACT (DAY FROM DOGOVORS.DATESTART) AS VARCHAR(2)) || '.' || CAST(EXTRACT (MONTH FROM DOGOVORS.DATESTART) AS VARCHAR(2)) || '.' || CAST(EXTRACT (YEAR FROM DOGOVORS.DATESTART) AS VARCHAR(4)) ) AS NUMDATE
Та же байда, что и в предыдущем запросе. :(
Как сделать, чтобы дата выводилась совместно с текстом типа '01.02.2004'?
Версия сервера: Firebird 1.0
...
Рейтинг: 0 / 0
Формат вывода даты
    #32573697
Злобастый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
UDF возьми для форматирования.
Или перейди на 1.5 и пользуй CASE
...
Рейтинг: 0 / 0
Формат вывода даты
    #32573770
Могун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или напиши процедуру

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
CREATE PROCEDURE DT2STR (
    DT DATE)
RETURNS (
    STR VARCHAR( 10 ))
AS
  declare variable tmp integer;
begin
  tmp=extract(day from dt);
  if (tmp< 10 ) then
    str='0'||tmp;
  else
    str=tmp;
  str=str||'.';
  tmp=extract(month from dt);
  if (tmp< 10 ) then
    str=str||'0'||tmp;
  else
    str=str||tmp;
  str=str||'.'||extract(year from dt);
  suspend;
end

и проверка:
Код: plaintext
1.
2.
3.
select
  'дата - '||(select str from dt2str('01.01.2004'))
from
  rdb$database
--------------------------------------------------------------------
когда я ем, я глух и нем, когда я пью, вообще дурной
...
Рейтинг: 0 / 0
Формат вывода даты
    #32573773
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой релиз FireBird 1.0 ?
...
Рейтинг: 0 / 0
Формат вывода даты
    #32573802
Siv Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какую UDF, конкретнее?
Извините, может вопрос глупый, а что в 1.5 относительно 1.0 в форматировании даты поменялось?
Спасибо за готовую процедуру. Это можно, но хочется все-таки в запросе как-то отформатировать.
Релиз 1.0.3.972
...
Рейтинг: 0 / 0
Формат вывода даты
    #32573816
Могун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это можно, но хочется все-таки в запросе как-то отформатировать.

А я что, не запрос предлагаю, что ли?

Код: plaintext
1.
2.
3.
SELECT
  DOGOVORS.DL_NO ||' от '||(select str from dt2str(DOGOVORS.DATESTART)) AS NUMDATE
FROM
  DOGOVORS

Или я чего -то не пойму, SQL - он и в Африке SQL ))
...
Рейтинг: 0 / 0
Формат вывода даты
    #32573844
Злобастый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Siv SoftКакую UDF, конкретнее?
Например DateToStr из библиотеки rFunc посмотри.

Siv SoftИзвините, может вопрос глупый, а что в 1.5 относительно 1.0 в форматировании даты поменялось?

Там появились новые конструкции SQL.
CASE- одна из них.
...
Рейтинг: 0 / 0
Формат вывода даты
    #32573850
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Siv Soft

(DOGOVORS.DL_NO
|| ' ' ||
SUBSTRING(CAST( 100* EXTRACT (DAY FROM DOGOVORS.DATESTART) AS VARCHAR(3)) FROM 2)
|| '.' ||
.....
...
Рейтинг: 0 / 0
Формат вывода даты
    #32573856
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон !
Естественно 100 +

...
Рейтинг: 0 / 0
Формат вывода даты
    #32573862
Злобастый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изящно. Снимаю шляпу. :)
...
Рейтинг: 0 / 0
Формат вывода даты
    #32573880
Siv Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никто ж не спорит, что запрос (некорректно выразился), но я имел ввиду, что есть функция стандартная, которую можно использовать в запросе или хитрым образом его составить так, чтобы форматировал дату. Сие спрашиваю как способ возможный, которым удобнее пользоваться.
А вообще процедуру уже забиваю.
...
Рейтинг: 0 / 0
Формат вывода даты
    #32574055
Siv Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Классно!
Столько отличных вариантов!!!
Всем огромное спасибо! УРА(3 раза)!!!
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Формат вывода даты
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]