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

Откуда:
Сообщений: 118
Друзья!

Пишу проект дату всегда делал вот такого вида "2015.08.24" мой MS SQL 2005 Express такую дату всегда узнаёт на ура.
Перенес проект на ноут с Windows 10 пришлось установить MS SQL 2008 r2 Express и тут началось ... не может узнать дату в том формате что я написал выше. В чём может быть проблема? (помимо меня конечно)))
Может ему (серверу) поменять региональные настройки? не помню как.
Базе менял язык: русский, англицкий, не помогло.

На большом брате с MS SQL 2005 работает всё без вопросов.

В проекте много мест где дата записывается в таблицы сервера в виде "yyyy.MM.dd", не хотелось бы переписывать.
24 авг 15, 08:16    [18058212]     Ответить | Цитировать Сообщить модератору
 Re: Перестал узнавать дату.  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 27983
Gagarin_74
В проекте много мест где дата записывается в таблицы сервера в виде "yyyy.MM.dd"...
Какой тип данных у колонки(ок)?
24 авг 15, 09:07    [18058326]     Ответить | Цитировать Сообщить модератору
 Re: Перестал узнавать дату.  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 27983
И что значит "не может узнать дату в том формате"? Вы пишете запрос? Какой? Где (ручками или он формируется в коде приложения?
24 авг 15, 09:11    [18058332]     Ответить | Цитировать Сообщить модератору
 Re: Перестал узнавать дату.  [new]
Gagarin_74
Member

Откуда:
Сообщений: 118
Тип поля в таблице DataTime, программно вставляю туда вот это:

DateTime.Today.ToString("yyyy.MM.dd")

и он это ТЕПЕРЬ не понимает. На 2005 понимает, а на 2008 нет.
24 авг 15, 09:16    [18058347]     Ответить | Цитировать Сообщить модератору
 Re: Перестал узнавать дату.  [new]
Ken@t
Member

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

Язык для логина по умолчанию русский поставьте, а во вторых передавать дату как значение типа , а не текстовое представление.
24 авг 15, 09:25    [18058379]     Ответить | Цитировать Сообщить модератору
 Re: Перестал узнавать дату.  [new]
Gagarin_74
Member

Откуда:
Сообщений: 118
Ken@t
Gagarin_74,

Язык для логина по умолчанию русский поставьте, а во вторых передавать дату как значение типа , а не текстовое представление.


Язык логина по умолчанию как установить?

set language russian?
24 авг 15, 09:50    [18058435]     Ответить | Цитировать Сообщить модератору
 Re: Перестал узнавать дату.  [new]
Zelius
Member

Откуда: Россия, Москва
Сообщений: 1434
Gagarin_74,

передавай дату как "20150824"
24 авг 15, 09:55    [18058449]     Ответить | Цитировать Сообщить модератору
 Re: Перестал узнавать дату.  [new]
Gagarin_74
Member

Откуда:
Сообщений: 118
Zelius,
Это понятно теперь.

Но в настоящее время меня интересует как базу причесать что бы она понимала дату в формате "yyyy.MM.dd"
24 авг 15, 10:02    [18058472]     Ответить | Цитировать Сообщить модератору
 Re: Перестал узнавать дату.  [new]
o-o
Guest
Gagarin_74
Но в настоящее время меня интересует как базу причесать что бы она понимала дату в формате "yyyy.MM.dd"

базу никак не "причесать".
не надо преобразовывать значение типа к строке, как уже написал Ken@t.
даже меняя язык логину/сессии, вы не уходите от формата dmy, к-ый идет в упряжке с русским.
выставляйте тогда в каждой сессии еще и ymd:
set dateformat 'ymd'

про смену языка логину:
alter login YourLogin with default_language = russian
24 авг 15, 10:14    [18058524]     Ответить | Цитировать Сообщить модератору
 Re: Перестал узнавать дату.  [new]
Bator
Member

Откуда: Порт пяти морей
Сообщений: 439
Gagarin_74,

если дату передавать как текст, то парсинг зависит от локали логина на сервере.
чтобы не зависело от локали нужно передавать в формате "yyyyMMdd HH:mm:ss"/"yyyyMMdd"
24 авг 15, 11:49    [18059182]     Ответить | Цитировать Сообщить модератору
 Re: Перестал узнавать дату.  [new]
человек_ниоткуда
Guest
Gagarin_74
Тип поля в таблице DataTime, программно вставляю туда вот это:

DateTime.Today.ToString("yyyy.MM.dd")

и он это ТЕПЕРЬ не понимает. На 2005 понимает, а на 2008 нет.

Вставляй DateTime.Today.ToString("yyyyMMdd") и горя знать не будешь никогда более.
24 авг 15, 11:56    [18059218]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить