Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Преобразование даты в 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?


Наверх

Титульная страница Поиск, карта сайта Написать письмо