Как преобразовать en-gb в en-us (Ошибка арифметического переполнения при преобразовании выражения в тип данных datetime) - PullRequest
1 голос
/ 18 октября 2010

Ошибка арифметического переполнения при преобразовании выражения в тип данных datetime. Заявление было прекращено.

Культура моего сайта en-gb (18/10/2010)

Культура моего сервера баз данных en-us (18.10.2010)

дата хранится в параметре;

command.Parameters.AddWithValue("@bookingdate", inputBookingDate.Text)

Есть ли способ преобразовать это в формат даты в США перед вводом в db?

Я попробовал этот код;

    Dim dbDate As String = command.Parameters("@bookingdate").Value.ToString
    dbdate = DateTime.Parse(dbdate, New CultureInfo("en-US"))
    command.Parameters("@bookingdate").Value = dbdate

Но получите ошибку 'Строка не была распознана как действительный DateTime.'

dbDate = "29/10/2010 00:00:00" 

Как мне указать текущую культуру? идентифицируя dbDate как действительное время в формате GB.

Спасибо.

1 Ответ

1 голос
/ 18 октября 2010

Попробуйте DateTime.Parse .Прочитайте дату в формате ГБ, запишите ее в формате США.Также самое время проверить код пользовательского интерфейса и убедиться, что он везде использует форматирование в ГБ.Или измените формат, который ожидает ваша БД.

Если ваша БД поддерживает это, вы можете записать дату в виде временной метки, чтобы попытаться свести к минимуму количество случаев использования формата даты в США.

...