Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Тип DateTime сменить с yyyy-dd-MM на yyyy-MM-dd  [new]
potkin
Member

Откуда: Ungvar
Сообщений: 1062
Добрый День!
В старой проге в запросах к БД используется не параметры, а обычный SQL с параметрами (знаю что не правильно):
UPDATE ... SET _date='2017-06-14'

А после переустановки сервера (был 32bit 2003 + MS SQL 2008, стал 64bit 2008 R2 + ms sql 2014) БД стала не корректно воспринимать такие запросы.
Разобравшись понял, что формат даты:
раньше был yyyy-MM-dd
после переустановки сервера стал yyyy-dd-MM

Вопросик: как можно сменить формат даты для MS SQL?
13 июл 17, 15:06    [20641013]     Ответить | Цитировать Сообщить модератору
 Re: Тип DateTime сменить с yyyy-dd-MM на yyyy-MM-dd  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
potkin,

У логина сменить язык
13 июл 17, 15:11    [20641058]     Ответить | Цитировать Сообщить модератору
 Re: Тип DateTime сменить с yyyy-dd-MM на yyyy-MM-dd  [new]
msLex
Member

Откуда:
Сообщений: 8091
SET DATEFORMAT
13 июл 17, 15:11    [20641059]     Ответить | Цитировать Сообщить модератору
 Re: Тип DateTime сменить с yyyy-dd-MM на yyyy-MM-dd  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
potkin,

может, проще поменять тип _date в таблицах на DATE?
Тогда строковое представление всегда будет правильно интерпретироваться.
Как я понял, время там не нужно?
13 июл 17, 15:12    [20641066]     Ответить | Цитировать Сообщить модератору
 Re: Тип DateTime сменить с yyyy-dd-MM на yyyy-MM-dd  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
msLex
SET DATEFORMAT
Так это надо будет во всех запросах в приложении прописывать.
Если это допустимо, то проще там задать нормальные строковые представления даты
13 июл 17, 15:15    [20641085]     Ответить | Цитировать Сообщить модератору
 Re: Тип DateTime сменить с yyyy-dd-MM на yyyy-MM-dd  [new]
potkin
Member

Откуда: Ungvar
Сообщений: 1062
автор
У логина сменить язык

Русский стоит

автор
SET DATEFORMAT

Да это работает, но ...
Это нужно для каждого запроса писать: set dateformat ymd;
А так что бы на всю БД установить?!

автор
Как я понял, время там не нужно?

Нужно.
13 июл 17, 15:24    [20641161]     Ответить | Цитировать Сообщить модератору
 Re: Тип DateTime сменить с yyyy-dd-MM на yyyy-MM-dd  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
potkin
автор
У логина сменить язык

Русский стоит
Так поставьте американский английский
potkin
автор
Как я понял, время там не нужно?

Нужно.
Значит, поменяйте тип на DATETIME2(3). Для него формат 'YYYY-MM-DD' родной и ни от чего не зависит.
13 июл 17, 15:28    [20641184]     Ответить | Цитировать Сообщить модератору
 Re: Тип DateTime сменить с yyyy-dd-MM на yyyy-MM-dd  [new]
potkin
Member

Откуда: Ungvar
Сообщений: 1062
iap
DATETIME2

Спасибо большое! Всё заработало!
Кстати, эта проблема началась после обновления Винды. До обновления (ещё вчера) всё работало отлично, а сегодня ...
13 июл 17, 15:40    [20641282]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить