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

Вниз

Почему даты разные ?   Найти похожие ветки 

 
Polevi ©   (2003-02-05 16:53) [0]

SELECT CAST(37620 AS DATETIME) - 01.01.2003
Writeln(DateToStr(37620)) - 30.12.2002

???


 
Max Zyuzin ©   (2003-02-05 17:04) [1]

А почему они дожны быть одинаковые?


 
Polevi ©   (2003-02-05 17:08) [2]

хм, ОS и DB-server Майкрософтом писаны, с какой радости разные точки отсчета брать непонятно



 
Reindeer Moss Eater   (2003-02-05 17:15) [3]

DateToStr тоже MS написал?


 
Max Zyuzin ©   (2003-02-05 17:18) [4]

>Polevi © (05.02.03 16:53)
Извиняюсь... тормознул :) не сразу понял... я думал ты там минусов налепил ;)


 
gsu ©   (2003-02-05 17:26) [5]

приведи один тип к другому и делов то


 
Polevi ©   (2003-02-05 18:12) [6]

какой тип ???

суть в том что в SP поле типа DATETIME кастуется к INT и передается клиенту - на клиенте делаем DateToStr и получаем совсем другую дату (смещение 2 дня)

передавать надо именно INT , так надо, процедура строит дерево дат - Год - Квартал - Месяц - День



 
Duce ©   (2003-02-05 18:30) [7]

Вообще, такая вещь, как день Х, от которого идет отсчет дней и на котором базируется арифметика дат, разные поставщики определяют по разномую Дельф: A TDate value represents the number of days that have elapsed since 12/30/1899. А откуда МС пляшет? Может поэтому...


 
gsu ©   (2003-02-05 18:39) [8]

см Duce © (05.02.03 18:30) и ...


 
Duce ©   (2003-02-05 18:48) [9]

А вообще, просто расширяя тему :)
В КС-системе обычно все, что касается ДейтТайм заточено на серверные значения...Вот! И забудь про DateToStr :()


 
neXt ©   (2003-02-05 20:25) [10]

Если использовать для приёма даты от сервера TField то AsDateTime нормально всё преобразует, т.е. хочу сказать, что не стоит передавать дату в int - передавайте её как дату.
Но если охота изврата то mssql-ная дата в int-овом представлении отличается от дельфийской на 2 (12/30/1899 и 01/01/1900 см Duce © (05.02.03 18:30)), но это меняется настройкой на сервере, так что - риск.


 
neXt ©   (2003-02-05 20:27) [11]

>>Duce © (05.02.03 18:48)
Он же говорит что дерево строит "все, что касается ДейтТайм заточено на серверные значения" - всё, но деревья строить всётки лучше на клиенте.


 
Polevi ©   (2003-02-06 09:22) [12]

как дату передавать не могу, ибо процедура должна возвращать
ID INT, Owner INT, Debet MONEY, Kredit MONEY
- на основе ее делаются отчеты, то есть ID может быть не датой а чем угодно (зависит от типа группировки) - на клиенте виз. компонент все это дело показывает исходя из данной структуры рекордсета

2neXt © (05.02.03 20:25)
я могу быть уверен что разница всегда будет 2 дня ??
где об этом почитать, дайте ссылку плиз..

PS
както кривовато на клиенте DateToStr(MyDate+2) :-)


 
Polevi ©   (2003-02-06 09:30) [13]

2neXt © (05.02.03 20:25)
я имел в виду где в SQL Server меняется точка отсчета ? - я не нашел ..


 
SergSuper   (2003-02-06 11:06) [14]

2 Polevi
Какие проблемы?
Передавайте еще одну колонку с датой:
ID INT, Date datetime, Owner INT, Debet MONEY, Kredit MONEY

Можно передавать количество дней от какой-то определённой даты.

Но в любом случае приводить дату к int-у на сервере и ждать что на клиенте обратное преобразование будет соответственное - архисамонадеянно. Не делайте таких штук как DateToStr(MyDate+2)


 
Polevi ©   (2003-02-06 11:26) [15]

2SergSuper (06.02.03 11:06)
наверное так я и сделаю, хотя можно один раз запросить у сервера определенную дату и высчитать дельту, которую потом плюсовать



Страницы: 1 вся ветка

Текущий архив: 2003.02.24;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.017 c
14-76151
Шоломицкий
2003-02-07 17:26
2003.02.24
Предлагают работу! Помогите плиз!


14-76105
MBo
2003-02-06 09:49
2003.02.24
Некоторые известные в мире Дельфи люди ;)


3-75827
ДенМат
2003-02-06 12:48
2003.02.24
Сумирование поля типа TIME


7-76208
AngeL B.
2002-12-24 12:25
2003.02.24
COM в сервисах


1-75856
DmitryMN
2003-02-13 16:02
2003.02.24
Ошибка после вывода в Excel