Проблема с конвертациец даты в SQL Server
От: new-traum Россия  
Дата: 20.05.04 10:23
Оценка:
Написал программу, хранилище данных SQL Server 2000.
Доступ к SQL Server через Wondows Acount- все работало нормально.
Переписал программу с доступом к SQL Server через SQL Server Acount, и при чтении даты из таблицы началось выводиться сообщение:
"The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value"

Начал конвертить дату с помошью Format(date,"\#mm\/dd\/yyyy\#" )
Все стало нормально работать.

Начал писать другой клиентский модуль под эту же базу. Все делал так же.
Но опять стали выпадать сообщения.

При чтении столбца начал конвертить дату так Format(date,"mm\/dd\/yyyy" )
Все стало работать нормально.

Потом не помню, то ли я начал еще что-то писать, то в этой же программе, но вобщем опять стало выдаваться сообщение.
Я убрал эту конверацию, т.е. вернул в первому варианту.
Все стало работать нормально.

Короче я не могу найти причину....
От способа соединения к базе я думаю это не зависит, хотя проблемы именно с тех пор и появились...
Помогите, задолбался уже....

Ячейки в таблице тип datetime, все кк обычно.
Запись в базу:
set rs1 = cn1.Execute("update TABLE set Date_Coll = '" & date & "'")
Re: Проблема с конвертациец даты в SQL Server
От: kuznetsoff  
Дата: 20.05.04 10:26
Оценка:
Здравствуйте, new-traum.

Вы писали 20 мая 2004 г., 14:23:23:

nt> Проблема с конвертациец даты в SQL ServerОценить

Вроде на сколько я знаю формат даты в SQL Server'e такой mm-dd-yyyy
Posted via RSDN NNTP Server 1.7 "Bedlam"
Re: Проблема с конвертациец даты в SQL Server
От: DarkSid Россия  
Дата: 20.05.04 10:30
Оценка:
Здравствуйте, new-traum, Вы писали:

NT>Написал программу, хранилище данных SQL Server 2000.

NT>Доступ к SQL Server через Wondows Acount- все работало нормально.
NT>Переписал программу с доступом к SQL Server через SQL Server Acount, и при чтении даты из таблицы началось выводиться сообщение:
NT>"The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value"

NT>Начал конвертить дату с помошью Format(date,"\#mm\/dd\/yyyy\#" )

NT>Все стало нормально работать.

NT>Начал писать другой клиентский модуль под эту же базу. Все делал так же.

NT>Но опять стали выпадать сообщения.

NT>При чтении столбца начал конвертить дату так Format(date,"mm\/dd\/yyyy" )

NT>Все стало работать нормально.

NT>Потом не помню, то ли я начал еще что-то писать, то в этой же программе, но вобщем опять стало выдаваться сообщение.

NT>Я убрал эту конверацию, т.е. вернул в первому варианту.
NT>Все стало работать нормально.

NT>Короче я не могу найти причину....

NT>От способа соединения к базе я думаю это не зависит, хотя проблемы именно с тех пор и появились...
NT>Помогите, задолбался уже....

NT>Ячейки в таблице тип datetime, все кк обычно.

NT>Запись в базу:
NT>set rs1 = cn1.Execute("update TABLE set Date_Coll = '" & date & "'")

У SQL SERVERA есть универсальный форматЮ по словам MicroSoft, yyyymmdd — без разделителей, времени yymmdd hh:mm:ss

используй Format(DateVal, "\'yyyymmdd\'")
Re[2]: Проблема с конвертациец даты в SQL Server
От: new-traum Россия  
Дата: 20.05.04 10:53
Оценка:
Ничего из перечисленного не помогло.

Ерунда какая-то....
Столько времени уже потерял. просто стыдно сказать...
Re[3]: Проблема с конвертациец даты в SQL Server
От: DarkSid Россия  
Дата: 20.05.04 11:03
Оценка:
Здравствуйте, new-traum, Вы писали:

NT>Ничего из перечисленного не помогло.


NT>Ерунда какая-то....

NT>Столько времени уже потерял. просто стыдно сказать...
Попробуй set rs1 = cn1.Execute("update TABLE set Date_Coll = Cast(" + _
Format(DateVal, "\'yyyymmdd\'") + " as datetime)

У меня все прошло, да и проходило всегда
Re[4]: Проблема с конвертациец даты в SQL Server
От: new-traum Россия  
Дата: 20.05.04 11:23
Оценка:
Здравствуйте, DarkSid, Вы писали:

DS>Здравствуйте, new-traum, Вы писали:


NT>>Ничего из перечисленного не помогло.


NT>>Ерунда какая-то....

NT>>Столько времени уже потерял. просто стыдно сказать...
DS> Попробуй set rs1 = cn1.Execute("update TABLE set Date_Coll = Cast(" + _
DS> Format(DateVal, "\'yyyymmdd\'") + " as datetime)

DS>У меня все прошло, да и проходило всегда



Прокатило, спасибо большое...

Круто, почему я раньше не знал о такой функции?
Надо учиться,учиться, учиться
Re[5]: Проблема с конвертациец даты в SQL Server
От: new-traum Россия  
Дата: 20.05.04 11:40
Оценка:
Опять какя-то ерунда, теперь пишет Incorrect sysnax near '.2004'
set rs1 = cn1.Execute("update Table set Date_Col = Cast(" & Date & " as datetime)")
Обрезает дату.


Обычно я когда раньше делал update то я дату брал в ковычки...
set rs1 = cn1.Execute("update Table set Date_Col = '" & Date & "'")
Было все нормально..

А если взять строчку с Cast и поставить в ковычки то будет опять ошибка..

set rs1 = cn1.Execute("update Table set Date_Col = 'Cast(" & Date & " as datetime)"'")

Сейчас у меня крыша потечет...
Re[6]: Проблема с конвертациец даты в SQL Server
От: new-traum Россия  
Дата: 20.05.04 11:42
Оценка:
Все нормально только когда формат "\'yyymmdd\'"
Re[7]: Проблема с конвертациец даты в SQL Server
От: DarkSid Россия  
Дата: 20.05.04 11:47
Оценка:
Здравствуйте, new-traum, Вы писали:

NT>Все нормально только когда формат "\'yyymmdd\'"

Это стандартый формат MicroSoft. Они сами его советуют, смотри Bool On-line
Applications using other APIs, or Transact-SQL scripts, stored procedures, and triggers, should use the unseparated numeric strings (for example, yyyymmdd as 19980924).
Этот формат не зависит ни от регинальных характеристик ни от других залепух. У меня это работает в России, Германии, Франции. Венгрии, Штатах и Англии. Так что используй так. Остальное нужно форматировать с учетом региональных характеристик и настроеек SQL servera. Успехов
Re[8]: Проблема с конвертациец даты в SQL Server
От: new-traum Россия  
Дата: 20.05.04 11:51
Оценка:
Здравствуйте, DarkSid, Вы писали:

DS>Здравствуйте, new-traum, Вы писали:


NT>>Все нормально только когда формат "\'yyymmdd\'"

DS> Это стандартый формат MicroSoft. Они сами его советуют, смотри Bool On-line
DS>Applications using other APIs, or Transact-SQL scripts, stored procedures, and triggers, should use the unseparated numeric strings (for example, yyyymmdd as 19980924).
DS>Этот формат не зависит ни от регинальных характеристик ни от других залепух. У меня это работает в России, Германии, Франции. Венгрии, Штатах и Англии. Так что используй так. Остальное нужно форматировать с учетом региональных характеристик и настроеек SQL servera. Успехов


Я тоже хочу чтобы у меня программы работали в разных странах..
Как подрядиться на такое...
Я правда не много знаю..
Re[9]: Проблема с конвертациец даты в SQL Server
От: DarkSid Россия  
Дата: 20.05.04 11:56
Оценка:
Здравствуйте, new-traum, Вы писали:

NT>Здравствуйте, DarkSid, Вы писали:


DS>>Здравствуйте, new-traum, Вы писали:


NT>>>Все нормально только когда формат "\'yyymmdd\'"

DS>> Это стандартый формат MicroSoft. Они сами его советуют, смотри Bool On-line
DS>>Applications using other APIs, or Transact-SQL scripts, stored procedures, and triggers, should use the unseparated numeric strings (for example, yyyymmdd as 19980924).
DS>>Этот формат не зависит ни от регинальных характеристик ни от других залепух. У меня это работает в России, Германии, Франции. Венгрии, Штатах и Англии. Так что используй так. Остальное нужно форматировать с учетом региональных характеристик и настроеек SQL servera. Успехов


NT>Я тоже хочу чтобы у меня программы работали в разных странах..

NT>Как подрядиться на такое...
NT>Я правда не много знаю..

Повезло чуть-чуть, но сейчас я ушел с той фирмы, разошлись с генеральным в направлениях развития комплекса. Но программы, как работали так и работают, пока их не обновляют на новые версии, написаннные другими программистами, которые пришли вместо меня( а взяли на одно мое место их 8 человек), так что клиенты периодически звонят, сотовый то я поменял, так что утилитками их снабжаю. Но сейчас работаю только на Российский рынок. Поддержим отечественного производителя
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.