проблема c датой при вставке записи от разных пользователей

Ромн
Дата: 10.12.2002 10:23:31
Такая проблема.
При вставке новой строки в таблицу дата записывается в разных форматах, т.е. меняется день и месяц местами.
В sql profilere трассирую и вижу:
dbo.uz_Trans_Insert 9, 9, '20021012 00:00:00:000', .50, 'USD', 1, '123', @P8 output select @P8 grisha 0 64 0 203 97 15 09:40:53.500
- неверно записалась

dbo.uz_Trans_Insert 6, 9, '20021210 00:00:00:000', .46, 'USD', 1, 'asdfg', @P8 output select @P8 als 0 35 0 93 99 9 09:43:00.250
- верно

Поскажите в чем дело ? (клиент написан на Power Builder)

зы: до какого-то момента все работало , до моего прихода
ЗЗы: кстати сумма лепится в 10000 раз меньше , чем в клиенте

Отвечать просьба на r_ivanov@au.ru
KirillovA
Дата: 10.12.2002 11:39:08
Трабла в Regional Settings клиентской машины (см. Control Panel).
Или ручками транслируй дату в нормальную или установи форматы даты/времени одиноковым везде.
Romn
Дата: 10.12.2002 11:46:06
у всех национальные настройки одинаковые
и тем более в коде передается yyyymmdd(специально видимо написано, чтобы не зависеть от этого), а в трассировщике видно ,что от одного приходит yyyymmdd , а от друго-го yyyyddmm
Glory
Дата: 10.12.2002 12:34:20
и тем более в коде передается yyyymmdd

Передается как строка ? Если да, то SQL тут точно не причем. Нужно выяснять как клиентское приложение формирует эту строку.


ЗЫ
А default language у этих пользователей одинаковый ?
Ромн
Дата: 10.12.2002 12:50:23
Да, язык у всех по умолчанию одинаковый.
В power builder функция есть преобразования в дату , формат передачи имеено yyyymmdd.
Glory
Дата: 10.12.2002 12:54:14
Для подключения используете свою строку подключения или сконфигурированный DSN или еще что ?
Александр Спелицин
Дата: 10.12.2002 12:59:53
А разделители списка, десятичный, тысяч? Может кто-то изменил?
Если Вы в PB сами формируете SQL строку типа
Insert Table1 values (50, 10, 12.5, ' ')
то при определенных регон. настройках у Вас может передаваться
Insert Table1 values (50, 10, 12,5, ' ')
Я сам через год работы на PB наступил на эти грабли. Пришлось смотреть про параметры, SQLCA, SQLDA. Хорошо, что в справке это подробно описали. На всякий случай PB 5.0-6.5 -> ODBC -> SQLANY 5.5
Jarik
Дата: 12.12.2002 05:04:01
Для того, чтобы СКЛ Сервер всегда понимал правильно, где число, а где месяц, указывайте явно формат, в котором вы ему эту дату даете.
Это можно сделать в SQL-запросах при помощи процедуры Convert.
Например, нужно писать так:
UPDATE Table1 SET Date1=Convert(DateTime,'22.09.2002',104)
104 - это код формата представления даты 'dd.mm.yyyy'. Если Вам нужно и время сохранить, то используйте код 121, а дату записывайте в формате 'yyyy-mm-dd hh:nn:ss.zzz'.
Ihor Bobak
Дата: 12.12.2002 18:42:46
Возьмите себе за правило ВСЕГДА и ВЕЗДЕ указывать дату в формате
yyyymmdd.

Пример:
insert into sometable (ID, SomeDateField)
values (1, '20021231')