Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.29;
Скачать: CL | DM;

Вниз

Преобразование даты в 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.027 c
3-93814
GSVSerg
2004-02-03 11:53
2004.02.29
Новая запись в НД


1-93936
Basilio
2004-02-14 12:44
2004.02.29
TDirectoryListBox не видит скрытые директории


3-93772
Val12
2004-02-03 17:49
2004.02.29
ExportGrid4ToExcel


8-94037
INext
2003-10-24 14:20
2004.02.29
Где достать Delphix 7


1-93987
$tranger
2004-02-17 11:59
2004.02.29
ListView и табличные данные