Форум: "Базы";
Текущий архив: 2004.02.29;
Скачать: [xml.tar.bz2];
ВнизПреобразование даты в MS SQL 2000 Найти похожие ветки
← →
CAV (Alexander) (2004-02-02 13:36) [0]Имеется чужая база. в ней дата и время представленны в виде поля типа integer и выглядят так: дата 74178 время 4631093. Как данные числа сконвертировать в понятный формат дат ? У разработчика спросить не могу.
← →
Ega23 (2004-02-02 13:38) [1]Тебе в Delphi или непосредственно на SQL?
← →
Sandman25 (2004-02-02 13:39) [2]Дата - это число дней, прошедших от какой-то базовой даты.
Время - скорее всего, 0.4631093=24 часа*0.46...
← →
stone (2004-02-02 13:41) [3]cast (74178+(0.4631093) as datetime)
← →
Ega23 (2004-02-02 13:44) [4]2103 год. Неслабая дата-то...
← →
Nikolay M. (2004-02-02 13:47) [5]
> stone © (02.02.04 13:41) [3]
> cast (74178+(0.4631093) as datetime)
Если эти числа взяты из базы, а не просто для примера, то я лично сомневаюсь, что кто-то будет хранить информацию о событиях 2103-го года...
Для начала нужно узнать, как эта пара чисел выглядит в интерфейсе к базе (если такой есть), а потом уже анализировать.
← →
Ega23 (2004-02-02 13:52) [6]
> Для начала нужно узнать, как эта пара чисел выглядит в интерфейсе
> к базе (если такой есть), а потом уже анализировать.
Вот и я о том же.
← →
Sandman25 (2004-02-02 13:53) [7]Так и я о том же :)
← →
Nikolay M. (2004-02-02 14:38) [8]Ну да, все говорят об одном и том же, а автора и след простыл...
← →
CAV (Alexander) (2004-02-02 19:30) [9]Цифры реальные, в интерфейсе программы выглядят как 22/01/04
← →
Nikolay M. (2004-02-03 09:32) [10]
> в интерфейсе программы выглядят как 22/01/04
Ну, как первая гипотеза: наверное, 74178 - число дней, прошедших с 19.12.1800. Осталось проверить это на десятке других дат.
← →
CAV (Alexander) (2004-02-03 13:28) [11]Не подскажете каким образом это можно сделать (причем как туда так и обратно)
← →
Ega23 (2004-02-03 14:06) [12]А описания базы (полей) нет в документации? Обычно на такие проекты документацию пишут.
← →
SergSuper (2004-02-03 15:13) [13]
if dateadd(dd,74178 , "18001219")<>"20040122" print "тебе не повезло"
еще есть datediff
← →
CAV (Alexander) (2004-02-03 18:25) [14]Описания полей нету, и не дадут. Значения даты нужно использовать в SQL
← →
Nikolay M. (2004-02-03 20:55) [15]
> Значения даты нужно использовать в SQL
Проверь, что теория [10] верна. А уже потом думай, как и где использовать.
← →
tender (2004-02-03 21:48) [16]1) если это стандартный MS DateTime то
function SQLToDelphiDate(aDate: Integer): TDateTime;
begin
Result:=aDate+2;
end;
function DelphiToSQLDate(aDate: TDateTime): longint;
begin
Result:=Round(Int(aDate))-2;
end;
2) select datediff(day, "", getdate())
3) select dateadd(day, 0, 38018)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.02.29;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.087 c