PDA

Просмотр полной версии : как вытащить дату из postgres



Паритет
05.02.2019, 14:04
Мастерскада пишет в базу postgres данные.
Хочу сторонним софтом вытащить данные из таблицы
мастерскада долбит в метку времени вот такую цифру - 636849557194160000

как перевести её во время ?

SCADAMaster
05.02.2019, 15:24
Значения соответствуют .NET тикам: var time = new DateTime(636849557194160000);
Пример запроса к PostgreSQL для отображения времени в timestamp:
SELECT itemid, name, firsttime, lasttime,
to_timestamp((firsttime - 621355968000000000)/10000000) as real_first_time,
to_timestamp((lasttime - 621355968000000000)/10000000) as real_last_time
FROM public.masterscadadataitems

Паритет
05.02.2019, 15:29
Огромное спасибо !)

Ps1x0
14.10.2023, 15:54
Здравствуйте. подниму тему. Насколько я понимаю в MS теперь формат Filetime (вида 133416077940006909). Насколько я понимаю из него нужно вычесть некий коэффициент как в примере выше. Но я не понимаю что за коэффициент нужно вычитать для типа filetime

Я попробовал предыдущий пример и получил что то близкое к правде, но не совсем то. Запрос такой же

57988 "Объекты.Счетчики.Счетчик_1" 133416077940006909 133417613331312119 "0423-10-12 20:40:12+02:30:17" "0423-10-14 15:19:11+02:30:17"

asuwcc
16.10.2023, 13:05
День добрый.

FILETIME - This structure is a 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601.
Нужно взять количество наносекунд с января 1970 года до 1601 (-116444683000000000) и отнять его (по модулю) от времени в БД. Часовой пояс надо учесть.

Ps1x0
18.10.2023, 05:41
Большое спасибо!