Дата / месяц / год в SQL изменена на месяц / день / год
У меня есть старое приложение Classic ASP, которое работало отлично, недавно оно было перенесено на сервер Windows Server 2012 с IIS 8.5, проблема в том, что у меня есть форма для добавления записи в формате день / месяц / год, когда дата введена как 23/06/2015 в SQL будет добавлено правильно как 23/06/2015, но когда дата введена как 01/06/2015: 1 июня 2015 года в SQL будет добавлено как 06/01/2015 месяц / день / год, что будет неверно
я проверил расположение и формат даты для сервера, и он был дд / мм / гггг, и база данных не изменилась со времени старого сервера SQL 2008. Я искал в сети и обнаружил, что мне нужно изменить культуру IIS в разделе GLOBALIZATION, но я не знаю, что выбрать, даже если бы я выбрал свою страну, я все еще сталкиваюсь с той же проблемой. любое предложение
3 ответа
Если вы не хотите вносить изменения в параметры глобализации и локализации, простой ответ - использовать универсальный ввод даты YYYYMMDD
при вставке даты в виде строк.
Обновление Для расширения вашего комментария: при изменении формата строки даты в запросе вставки / обновления он не меняет формат в самой таблице sql.
например
UPDATE [table]
SET [column] = '20150716 10:22'
WHERE Id = 7489
При просмотре отображается так же, как и другие записи в таблице:
Иногда, когда ничто не решает эту проблему (или глобальное решение может повредить старые сценарии), Обходное решение, которое вы можете использовать, - это функция convert для изменения формата в вашей хранимой процедуре.
Например:
select getdate() --prints 2018-10-05 12:24:43.597
select Convert(char(10),getdate(),103) --To force the date to be dd/mm/yyyy
И не позволяя странице asp форматировать дату, просто печатать в формате raw.
Попробуй это:-
https://www.webwiz.co.uk/kb/asp-tutorials/date-time-settings.htm
Добавьте запись в global.asa, как показано ниже...
'When a session starts on the server the following code will be run
Sub Session_OnStart
'Set the server locale
Session.LCID = 2057
End Sub