powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Тип данных для даты+время
16 сообщений из 16, страница 1 из 1
Тип данных для даты+время
    #39685173
Rphoenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, пожалуйста, тип данных, чтобы дата и время были вместе. На вроде DATETIME.
...
Рейтинг: 0 / 0
Тип данных для даты+время
    #39685174
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rphoenix,

RTFM TIMESTAMP?
...
Рейтинг: 0 / 0
Тип данных для даты+время
    #39685193
Rphoenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допустим, есть D1 и D2 типа date и T1, T2 типа time .

Нужна разница между D2T2-D1T1.
...
Рейтинг: 0 / 0
Тип данных для даты+время
    #39685219
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rphoenix, и в чем проблема?
...
Рейтинг: 0 / 0
Тип данных для даты+время
    #39685222
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rphoenix,

Разница в чем? В каких единицах?
...
Рейтинг: 0 / 0
Тип данных для даты+время
    #39685246
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rphoenix,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
create domain DURATION   -- Длительность
double precision^

create procedure FORMAT_TIME_INTERVAL(        -- Выдает кол-во часов и минут в формате HH ч MM мин
  TIME_INTERVAL type of DURATION              -- Временной интервал
)
returns (
  RESULT varchar(40)                          -- Результат
)
as
declare variable AH integer;
declare variable AM integer;
begin
 if ( (TIME_INTERVAL is null) or (TIME_INTERVAL < 0) )
    then RESULT = '';
    else begin
          if (TIME_INTERVAL > 0.000000009)
             then AH = TIME_INTERVAL*24 - 0.5;
             else  AH = 0;
          AM = (TIME_INTERVAL - cast(AH as double precision)/24)*1440;
          if (AM = 60)
             then begin
                  AH = AH + 1;
                  AM = 0;
                  end
          if (AH < 10)
             then RESULT = '0'||AH||' ч ';
             else RESULT = AH||' ч ';
          if (AM < 10)
             then RESULT = RESULT||' 0'||AM||' мин ';
             else RESULT = RESULT||' '||AM||' мин ';
         end
 suspend;
end^
...
Рейтинг: 0 / 0
Тип данных для даты+время
    #39685266
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor,

А DATEDIFF не кошерно?
...
Рейтинг: 0 / 0
Тип данных для даты+время
    #39685268
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RphoenixДопустим, есть D1 и D2 типа date и T1, T2 типа time .

Нужна разница между D2T2-D1T1.

Что-то такое:
Код: sql
1.
datediff(minute, (D1+T1), (D2+T2))


Третий FB правильно понимает сложение даты и времени, превращает его в TIMESTAMP. Если не то, то тогда через CAST.
...
Рейтинг: 0 / 0
Тип данных для даты+время
    #39685286
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понапишут серверных процедур, которые время возвращают в формате "4 часа тому назад" или "3-й день с Пасхи 2018 года, около 2 часов пополудни", а потом появляются топики (от других писателей) "как мне преобразовать ..."
...
Рейтинг: 0 / 0
Тип данных для даты+время
    #39685309
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryПонапишут серверных процедур, которые время возвращают в формате "4 часа тому назад" или "3-й день с Пасхи 2018 года, около 2 часов пополудни", а потом появляются топики (от других писателей) "как мне преобразовать ..."
Что делать? Это сейчас принято. Сегодня, вчера, вторник, понедельник... В принципе, действительно, удобно. "Вчера" лучше чем 08.08.2018.
...
Рейтинг: 0 / 0
Тип данных для даты+время
    #39685313
Rphoenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor, огромнейшее спасибо! Очень помогли!
...
Рейтинг: 0 / 0
Тип данных для даты+время
    #39685314
Rphoenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXI, до меня базу делали другие люди - сейчас разбираюсь.
...
Рейтинг: 0 / 0
Тип данных для даты+время
    #39685334
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXIЧто делать? Это сейчас принято. Сегодня, вчера, вторник, понедельник... В принципе, действительно, удобно. "Вчера" лучше чем 08.08.2018.Разумеется, это удобно. Но для представления в клиенте, а не.
...
Рейтинг: 0 / 0
Тип данных для даты+время
    #39685429
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery,

на клиенте ещё и удобнее во многих случаях. Как, например, в этом случае. Хранимка выдала строку, а клиенту, если придётся, нужно как-то опять в число её преобразовывать.
...
Рейтинг: 0 / 0
Тип данных для даты+время
    #39685463
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXIХранимка выдала строку, а клиенту, если придётся, нужно как-то опять в число её преобразовывать.
не надо маразма.
WildSery2 часов пополудни", а потом появляются топики (от других писателей) "как мне преобразовать ..."

Вы не путайте нормальный вывод приложения, и хитрожопых халявщиков, которые пытаются бесплатно парсить платные сервисы (я в курсе топика, в котором этот вопрос был).
...
Рейтинг: 0 / 0
Тип данных для даты+время
    #39685537
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

Я вот об этом топике подумал, а не о том, на который ты намекаешь.
Его влияние сказалось только на "человечности" моих примеров.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Тип данных для даты+время
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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