Ввод даты в поле с типом DATETIME в MS SQL SERVER 20005? - вопрос №422555

Такая беда!!! В MS SGL SERVER 2005 ввожу запросом дату в поле с типом данных DATETIME (например 23/09/1964), а на выходе в таблице получаю либо 01.01.1900 либо вообще какой-нибудь другой год и дату… Что это? Как мне ввести нужную мне дату? UPDATE Клиенты SET Дата_рождения = 23/09/1964 WHERE фамилия = 'Иванов';

Ответы

При использовании в качестве языковой настройки us_english порядком по умолчанию для даты является mdy (МДГ). Порядок даты можно изменить при помощи инструкции SET DATEFORMAT.

Установка для SET DATEFORMAT определяет, как будут интерпретированы значения дат. Если порядок не соответствует параметру, значения не рассматриваются как даты, поскольку находятся вне допустимого диапазона... 

источник

попробуйте 09/23/1964

или освойте явное назначение форматов даты с помощью SET DATEFORMAT

13.10.12

Для типа datetime нужно указывать еще и время.

И самое важное — дата должна быть в кавычках, т.к. на входе — это СТРОКА.

Т.е. правильно так:

UPDATE Клиенты SET Дата_рождения = '23/09/1964 00:00' WHERE фамилия = 'Иванов';

или вот так

UPDATE Клиенты SET Дата_рождения = '23-09-1964 00:00' WHERE фамилия = 'Иванов';

14.10.12

Павел Викторович

Читать ответы
Посмотреть всех экспертов из раздела Технологии > Базы данных
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store