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

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

Почему даты разные ? [MSSQL]


Polevi ©   (2003-02-05 16:53:00) 

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

???


Polevi   (2003-02-06 11:26:00) [1]

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


SergSuper   (2003-02-06 11:06:00) [2]

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

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

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


Polevi   (2003-02-06 09:30:00) [3]

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


Polevi   (2003-02-06 09:22:00) [4]

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

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

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


neXt   (2003-02-05 20:27:00) [5]

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


neXt   (2003-02-05 20:25:00) [6]

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


Duce   (2003-02-05 18:48:00) [7]

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


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

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


Duce   (2003-02-05 18:30:00) [9]

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


Polevi   (2003-02-05 18:12:00) [10]

какой тип ???

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

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


gsu   (2003-02-05 17:26:00) [11]

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


Max Zyuzin   (2003-02-05 17:18:00) [12]

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


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

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


Polevi   (2003-02-05 17:08:00) [14]

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


Max Zyuzin   (2003-02-05 17:04:00) [15]

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


Наверх

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