![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Преобразование даты в MS SQL 2000 [D5, MSSQL]
CAV (Alexander) © (2004-02-02 13:36:00)
Имеется чужая база. в ней дата и время представленны в виде поля типа integer и выглядят так: дата 74178 время 4631093. Как данные числа сконвертировать в понятный формат дат ? У разработчика спросить не могу.
tender (2004-02-03 21:48:00) [1]
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)
Nikolay M. (2004-02-03 20:55:00) [2]
> Значения даты нужно использовать в SQL
Проверь, что теория [10] верна. А уже потом думай, как и где использовать.
CAV (Alexander) (2004-02-03 18:25:00) [3]
Описания полей нету, и не дадут. Значения даты нужно использовать в SQL
SergSuper (2004-02-03 15:13:00) [4]
if dateadd(dd,74178 , "18001219")<>"20040122" print "тебе не повезло"
еще есть datediff
Ega23 (2004-02-03 14:06:00) [5]
А описания базы (полей) нет в документации? Обычно на такие проекты документацию пишут.
CAV (Alexander) (2004-02-03 13:28:00) [6]
Не подскажете каким образом это можно сделать (причем как туда так и обратно)
Nikolay M. (2004-02-03 09:32:00) [7]
> в интерфейсе программы выглядят как 22/01/04
Ну, как первая гипотеза: наверное, 74178 - число дней, прошедших с 19.12.1800. Осталось проверить это на десятке других дат.
CAV (Alexander) (2004-02-02 19:30:00) [8]
Цифры реальные, в интерфейсе программы выглядят как 22/01/04
Nikolay M. (2004-02-02 14:38:00) [9]
Ну да, все говорят об одном и том же, а автора и след простыл...
Sandman25 (2004-02-02 13:53:00) [10]
Так и я о том же :)
Ega23 (2004-02-02 13:52:00) [11]
> Для начала нужно узнать, как эта пара чисел выглядит в интерфейсе
> к базе (если такой есть), а потом уже анализировать.
Вот и я о том же.
Nikolay M. (2004-02-02 13:47:00) [12]
> stone © (02.02.04 13:41) [3]
> cast (74178+(0.4631093) as datetime)
Если эти числа взяты из базы, а не просто для примера, то я лично сомневаюсь, что кто-то будет хранить информацию о событиях 2103-го года...
Для начала нужно узнать, как эта пара чисел выглядит в интерфейсе к базе (если такой есть), а потом уже анализировать.
Ega23 (2004-02-02 13:44:00) [13]
2103 год. Неслабая дата-то...
stone (2004-02-02 13:41:00) [14]
cast (74178+(0.4631093) as datetime)
Sandman25 (2004-02-02 13:39:00) [15]
Дата - это число дней, прошедших от какой-то базовой даты.
Время - скорее всего, 0.4631093=24 часа*0.46...
Ega23 (2004-02-02 13:38:00) [16]
Тебе в Delphi или непосредственно на SQL?