Страница 1 из 1
Шифрование даты базе галактики.
Добавлено: 21 мар 2006, 12:18
Alexey
Объясните мне, как в Галактике шифруется
дата ?
Выгружаю данные скриптом и сталкиваюсь с проблемой, что дата - целое число (9 знаков)
.
Может кто знает алгоритм?
Добавлено: 21 мар 2006, 12:49
homak
в какой формат данных выгружаете ?
Добавлено: 21 мар 2006, 13:05
san
в шестнадцатиричный вид переведи сразу поймешь
Добавлено: 21 мар 2006, 13:37
WiRuc
Функции на T-SQL для преобразования даты в формат Галактики и обратно.
Код: Выделить всё
-- Функция конвертации INT в DATETIME
CREATE FUNCTION uf_inttodate (@galdate int)
RETURNS datetime
with schemabinding
AS
BEGIN
-- CAST(0 as datetime) возвращает 01-01-1900, поэтому собираем дату относительно 1900
RETURN (CASE WHEN @galdate=0 OR @galdate is NULL THEN NULL ELSE DATEADD(dd,@galdate&0x000000FF-1,DATEADD(mm,(@galdate&0x0000FF00)/256-1,DATEADD(yy,(@galdate&0xFFFF0000)/65536-1900,CAST(0 as datetime)))) END)
END
-- Функция конвертации DATETIME в INT
CREATE FUNCTION uf_datetoint (@curDT datetime)
RETURNS galdate
with schemabinding
AS
BEGIN
RETURN (CASE WHEN @curDT IS NULL THEN 0 ELSE DATEPART(YY,@curDT)*65536+DATEPART(MM,@curDT)*256+DATEPART(DD, @curDT) END)
END
Добавлено: 22 мар 2006, 08:47
Alexey
Спасибо!
Re:
Добавлено: 22 дек 2014, 12:42
FynjyWelt
WiRuc писал(а):Функции на T-SQL для преобразования даты в формат Галактики и обратно.
Код: Выделить всё
-- Функция конвертации INT в DATETIME
CREATE FUNCTION uf_inttodate (@galdate int)
RETURNS datetime
with schemabinding
AS
BEGIN
-- CAST(0 as datetime) возвращает 01-01-1900, поэтому собираем дату относительно 1900
RETURN (CASE WHEN @galdate=0 OR @galdate is NULL THEN NULL ELSE DATEADD(dd,@galdate&0x000000FF-1,DATEADD(mm,(@galdate&0x0000FF00)/256-1,DATEADD(yy,(@galdate&0xFFFF0000)/65536-1900,CAST(0 as datetime)))) END)
END
-- Функция конвертации DATETIME в INT
CREATE FUNCTION uf_datetoint (@curDT datetime)
RETURNS galdate
with schemabinding
AS
BEGIN
RETURN (CASE WHEN @curDT IS NULL THEN 0 ELSE DATEPART(YY,@curDT)*65536+DATEPART(MM,@curDT)*256+DATEPART(DD, @curDT) END)
END
Подскажите, пожалуйста, как преобразовать если в datetime содержится дата и время? Заранее спасибо.
Re: Шифрование даты базе галактики.
Добавлено: 22 дек 2014, 13:13
Den
В Бд посмотрите там есть функции
dbo.toMsDateTime
dbo.ToAtlDateTime
Re: Шифрование даты базе галактики.
Добавлено: 23 дек 2014, 11:12
FynjyWelt
Den писал(а):В Бд посмотрите там есть функции
dbo.toMsDateTime
dbo.ToAtlDateTime
Спасибо!