Jitendra shekhawat Ответов: 1

Вставка / обновление datetime из VB6 в SQL server


в MS Access
itmarr(0, 0) = " bill_date"
itmarr(1, 0) = TxtDate. Text

В SQL SERVER
itmarr(0, 0) = " bill_date"
itmarr(1, 0) = Format(TxtDate. Text, "dd MMM yyyy")

ОТОБРАЖЕНИЕ ОШИБОК В SQL SERVER]
преобразование типа данных varchar в тип данных datetime привело к значению вне диапазона

Что я уже пробовал:

Insert/update datetime from VB6 to Sql Server

Richard MacCutchan

Сообщение об ошибке ясно говорит вам, что не так. Проверьте значения ваших переменных, чтобы понять, почему.

Jitendra shekhawat

Пожалуйста, скажите мне ошибку....??
и как решить эту проблему.....
пожалуйста помочь...

Richard MacCutchan

Эта ошибка подробно описана в сообщении. И решение состоит в том, чтобы проверить ваш код и ваши данные, чтобы понять, почему они недействительны. Помните, что мы не можем видеть ваш экран, поэтому понятия не имеем, какую информацию пытается обработать ваша система.

Jitendra shekhawat

ох, сэр
спасибо

1 Ответов

Рейтинг:
5

CHill60

Всегда старайтесь использовать "однозначные даты" при передаче информации - особенно в базы данных и из них.

Что это на самом деле означает? Это означает, что используйте формат даты, который не может быть неправильно истолкован независимо от того, в какой стране или часовом поясе вы находитесь и какой язык используется.

Пример: 01/06/2016 будет 1 июня в Великобритании, но 6 января в США.

Вы довольно близки, потому что вы использовали DD MMM yyyy в качестве формата. Что прекрасно на большинстве языков ... "27 февраля 2017" работает на английском, голландском, немецком и т. д., Но на финском языке это было бы бессмысленно (финский для февраля-helmikuu). В наши дни нет ничего необычного в том, что серверы SQL Server размещаются в разных странах по сравнению с той, где работает приложение. Нет ничего необычного и в том, что пользователи из разных стран получают доступ к одной и той же базе данных SQL.

Существует два формата дат, которые гарантированно работают для всех версий SQL Server. С пользой они работают и для большинства других баз данных.

yy-MM-ddTHH24:mi:ss
и
yyyyMMdd HH24:mi:ss
Также стоит ознакомиться со стандартом ISO для дат - ISO 8601-Википедия[^]

Если это не решит вашу конкретную проблему, то поставьте точку останова (F9) на линию
itmarr(1, 0) = Format(TxtDate.Text, "dd MMM yyyy")
и взгляните на содержимое TxtDate - вы, вероятно, обнаружите, что оно вообще не может быть отформатировано как дата. Вы действительно должны добавить некоторую проверку или использовать элемент управления DatePicker.