![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему даты разные ? [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]А почему они дожны быть одинаковые?