powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / TIMESTAMP
22 сообщений из 22, страница 1 из 1
TIMESTAMP
    #39152852
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Have a nice day, форумчане!

Если я правильно понимаю, сервер Firebird хранит TIMESTAMP в виде структуры, подобной:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
union
{
  unsigned long long int  whole;
  struct
  {
    unsigned int  Time;   // количество десятых долей миллисекунд с начала суток
    unsigned int  Date;   // количество дней от начала <...?>
  };
};


В связи с чем возникает вопрос - по какой причине в Firebird отсутствует возможность преобразования TIMESTAMP в BIGINT?
Код: sql
1.
SELECT Cast(CURRENT_TIMESTAMP AS BIGINT) FROM RDB$DATABASE


И пара вопросов к тем, кто пользует FIBPlus:

1. При получении значения AsTimeStamp из поля типа "TIMESTAMP", в поле Time структуры я получу теже десятые миллисекунды или же, в соответствии с мануалом (C++ Builder/Delphi) на TTimeStamp, миллисекунды?

2. Какой результат будет при получении значения AsInt64 из поля типа TIMESTAMP? whole?
...
Рейтинг: 0 / 0
TIMESTAMP
    #39152870
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBConstructorВ связи с чем возникает вопрос - по какой причине в Firebird отсутствует возможность преобразования TIMESTAMP в BIGINT?А по какой причине оно нужно?
...
Рейтинг: 0 / 0
TIMESTAMP
    #39152949
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSery, для меня первый вопрос вытекает из последующих, т.е. на клиенте через FIBPlus планируется получить TIMESTAMP в виде упомянутой структуры. На сколько это возможно?
...
Рейтинг: 0 / 0
TIMESTAMP
    #39152954
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBConstructorЕсли я правильно понимаю, сервер Firebird хранит TIMESTAMP в виде
структуры
Структура ISC_TIMESTAMP описана в документации. RTFM API Guide, Data Definition Guide и т.д.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
TIMESTAMP
    #39152966
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, ты хочешь сказать, что на Firebird x64 использует структуру в 128 бит, а не 64?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#ifndef ISC_TIMESTAMP_DEFINED
typedef int           ISC_DATE;
typedef unsigned int  ISC_TIME;
typedef struct
{
  ISC_DATE timestamp_date;
  ISC_TIME timestamp_time;
} ISC_TIMESTAMP;
#define ISC_TIMESTAMP_DEFINED
#endif  /* ISC_TIMESTAMP_DEFINED */
...
Рейтинг: 0 / 0
TIMESTAMP
    #39152978
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, меня больше интересует, что я в итоге получу здесь:

Unit
SysUtils
Код: sql
1.
2.
3.
4.
5.
struct TTimeStamp
{
  int Time;
  int Date;
} ;
...
Рейтинг: 0 / 0
TIMESTAMP
    #39152979
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBConstructor,

откуда такие фантазии?
...
Рейтинг: 0 / 0
TIMESTAMP
    #39152980
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBConstructorВ связи с чем возникает вопрос - по какой причине в Firebird отсутствует возможность преобразования TIMESTAMP в BIGINT?Потому что. Время - это не число. Если нужен интервал, то есть DATEDIFF

DBConstructorпервый вопрос вытекает из последующихИнтересный способ ставить вопросы...
...
Рейтинг: 0 / 0
TIMESTAMP
    #39152981
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladПотому что. Время - это не число. Если нужен интервал, то есть DATEDIFF
Т.е., поле ISC_TIME, это НЕ число десятых долей миллисекунды, прошедших с начала суток?
...
Рейтинг: 0 / 0
TIMESTAMP
    #39152993
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBConstructor,

тебя не должно интересовать внутреннее устройство ISC_TIME.
Забудь про него.
...
Рейтинг: 0 / 0
TIMESTAMP
    #39152995
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBConstructor т.е. на клиенте через FIBPlus планируется получить TIMESTAMP в виде упомянутой структуры. На сколько это возможно?

Самый главный вопрос зачем? Что ты потом с этим ISC_TIMESTAMP делать собираешься. Эта структура нужна лишь если:
1. ты пишешь UDF
2. ты пишешь UDR
3. ты работаешь с API Firebird

Если ты работаешь через FIBPlus, то на фига тебе получать потроха?
...
Рейтинг: 0 / 0
TIMESTAMP
    #39153003
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladDBConstructor, тебя не должно интересовать внутреннее устройство ISC_TIME. Забудь про него.
Хорошо. Предположим, я забыл о внутреннем устройстве как ISC_TIMESTAMP, так и ISC_TIME. Используя FIBPlus, какие значения я получу на клиенте в членах структуры Sysutils::TTimeStamp при вызове метода AsTimeStamp по полю типа TIMESTAMP?
...
Рейтинг: 0 / 0
TIMESTAMP
    #39153007
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисЕсли ты работаешь через FIBPlus, то на фига тебе получать потроха?
Предположим, что мне понадобилось засунуть эту структуру как __int64 в STL map.
...
Рейтинг: 0 / 0
TIMESTAMP
    #39153013
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBConstructorИспользуя FIBPlus, какие значения я получу на клиенте в членах
структуры Sysutils::TTimeStamp при вызове метода AsTimeStamp по полю типа TIMESTAMP?

С этим вопросом - на форум FIBPlus.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
TIMESTAMP
    #39153019
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBConstructor,

кажется я стал понимать о чём ты

вот похожий топик http://www.sql.ru/forum/165594/timestamp-i-millisekundy-problemma
...
Рейтинг: 0 / 0
TIMESTAMP
    #39153029
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Симонов Денис!
You wrote on 22 января 2016 г. 14:02:15:

Симонов Денис> вот похожий топик http://www.sql.ru/forum/165594/timestamp-i-millisekundy-problemma
с тех пор в фибплюсах это пофиксили отказавшись от АПИ-шного декодирования в С-шную структуру.
(если я ничего не путаю)

ну а ТС, как обычно, вместо того чтоб проверить самостоятельно, вывалил свои непричёсанные мысли в форум.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
TIMESTAMP
    #39153033
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, не совсем. TDateTime использует отсчет от 30.12.1899 00:00, а TIMESTAMP от 01.01.01 00:00.
...
Рейтинг: 0 / 0
TIMESTAMP
    #39153034
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисвот похожий топик
Ты считаешь, что Бузаджи не поправил этот баг FIBS?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
TIMESTAMP
    #39153035
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий, до проверки дошел бы только на следующей неделе, а ответ хочется иметь сейчас.
...
Рейтинг: 0 / 0
TIMESTAMP
    #39153058
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBConstructor,

И что ты с этим ответом планируешь до следующей недели делать?
...
Рейтинг: 0 / 0
TIMESTAMP
    #39153061
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

нет я хелп почитал
http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/SysUtils_TTimeStamp.html

Код: pascal
1.
2.
3.
4.
TTimeStamp = record
  Time: Integer;
  Date: Integer;
end;


...
The Time field indicates the number of milliseconds that have elapsed since midnight.
...

Даже если кто-то умудрится засунуть в Time не миллисекунды, а десятитысячные доли миллисекунды, то я сомневаюсь, что все остальные функции и визуальные компоненты будут это правильно обрабатывать
...
Рейтинг: 0 / 0
TIMESTAMP
    #39153067
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисДаже если кто-то умудрится засунуть в Time не миллисекунды, а десятитысячные доли миллисекунды, то я сомневаюсь, что все остальные функции и визуальные компоненты будут это правильно обрабатывать
Логично... Функция TimeStampToDateTime, в этом случае, точно не должна работать корректно, а визуальные компоненты используют TDateTime.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / TIMESTAMP
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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