Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2014, 14:00   #1
qrax
Пользователь
 
Регистрация: 14.04.2014
Сообщений: 12
По умолчанию Формат даты другой

Такая проблема:
присваиваю переменной значение dateTimePicker1.Value.Date.ToString ()

Потом пытаюсь занести в бд (sql server express)

присвоенное значение имеет вид 01.04.2014 00:00:00
Когда в sql managment studio записываю такой формат все нормально записывается.

Но значение 17.04.2014 00:00:00 при запиши в бд показывает ошибку


Conversion failed when converting date and/or time from character string

то есть в sql servere первым идет месяц, потом день потом год,

если первое число больше 12 сразу показывает данную ошибку,
как изменить в sql server'e формат даты? чтоб было ДД.ММ.ГГГГ
qrax вне форума Ответить с цитированием
Старый 17.04.2014, 14:12   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
то есть в sql servere первым идет месяц, потом день потом год,
Во первых, правильный формат даты в MS SQL Server YYYY-MM-DD HH:MM:SS.MMM
Цитата:
как изменить в sql server'e формат даты? чтоб было ДД.ММ.ГГГГ
Используйте параметрические запросы.
Streletz вне форума Ответить с цитированием
Старый 17.04.2014, 15:17   #3
qrax
Пользователь
 
Регистрация: 14.04.2014
Сообщений: 12
По умолчанию

Цитата:
присвоенное значение имеет вид 01.04.2014 00:00:00
Когда в sql managment studio записываю такой формат все нормально записывается.
Цитата:
Но значение 17.04.2014 00:00:00 при запиcи в бд показывает ошибку
если первое число больше 12 сразу показывает данную ошибку
Экспериментальным путем вычислил, что первым идет месяц, потому как при вводе 13 вылетает ошибка
qrax вне форума Ответить с цитированием
Старый 17.04.2014, 15:48   #4
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от qrax Посмотреть сообщение
первым идет месяц
На MSDN прямым текстом написано, что идёт 1м, 2м и т.д.:Типы данных даты и времени
Цитата:
чтоб было ДД.ММ.ГГГГ
Отображение даты и времени при выводе из БД, в том числе средствами SQL Server Maanagement Studio, зависит от региональных настроек.
Физически в БД всё выглядит так, как написано в MSDN (см. абзац выше).
Используйте литералы рекомендованные Microsoft или, уже упомянутые, параметрические запросы.
Цитата:
Сообщение от qrax Посмотреть сообщение
первым идет месяц потому как при вводе 13 вылетает ошибка
Это ещё ни о чём не говорит. Запрос в студию!
Streletz вне форума Ответить с цитированием
Старый 17.04.2014, 16:52   #5
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
присваиваю переменной значение dateTimePicker1.Value.Date.ToString ()

Потом пытаюсь занести в бд (sql server express)
уже не правильно, дальше можно не читать
eval вне форума Ответить с цитированием
Старый 17.04.2014, 17:08   #6
qrax
Пользователь
 
Регистрация: 14.04.2014
Сообщений: 12
По умолчанию

1
Код:
insert Pacient
values ('Иванов', 'Иван','Иванович','01.01.2000', 'Диагноз2', '02.03.2013', 6, 2)
Цитата:
(строк обработано: 1)
2
Код:
insert Pacient
values ('Иванов', 'Иван','Иванович','13.01.2000', 'Диагноз2', '02.03.2013', 6, 2)
Цитата:
Сообщение 241, уровень 16, состояние 1, строка 1
Conversion failed when converting date and/or time from character string.
3
Код:
insert Pacient
values ('Иванов', 'Иван','Иванович','12.32.2000', 'Диагноз2', '02.03.2013', 6, 2)
Цитата:
Сообщение 241, уровень 16, состояние 1, строка 1
Conversion failed when converting date and/or time from character string.
Последнее говорит о том что 32 числа в декабре нет,
соответственно во втором варианте 13 месяца нет

Четвертое значение имеет тип Date
qrax вне форума Ответить с цитированием
Старый 17.04.2014, 17:38   #7
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

в мусорку код выкинуть, и не заниматься ерундой
eval вне форума Ответить с цитированием
Старый 17.04.2014, 18:33   #8
qrax
Пользователь
 
Регистрация: 14.04.2014
Сообщений: 12
По умолчанию

это из SQL для проверки
в C# соответственно catch ловит аналогичный exseption
qrax вне форума Ответить с цитированием
Старый 17.04.2014, 19:54   #9
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Попробуйте так:
Код:
insert Pacient
values ('Иванов', 'Иван','Иванович','2000-01-13', 'Диагноз2', '2013-03-02', 6, 2)
Streletz вне форума Ответить с цитированием
Старый 18.04.2014, 09:48   #10
qrax
Пользователь
 
Регистрация: 14.04.2014
Сообщений: 12
По умолчанию

Тут вопрос не как записать, а как изменить формат даты в MS SQL Server, примером SQL запроса хотел показать что дата записывается именно в формате ММ.ДД.ГГГГ, а не как говорят по умолчанию ДД.ММ.ГГГГ.
Почему мне надо формат именно ДД.ММ.ГГГГ, потому что данные из dateTimePicker1.Value.Date.ToString () имеет формат ДД.ММ.ГГГГ, и эти данные мне надо записать в БД, то есть в моем случае беру формат ДД.ММ.ГГГГ и пытаюсь записать в формат ММ.ДД.ГГГГ, соответственно catch ловит exception при сохранении.
qrax вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формат даты. vlkr Microsoft Office Access 1 04.08.2012 23:43
Формат Даты katerinkaj Microsoft Office Excel 83 29.08.2011 14:05
Формат даты SergiOD Общие вопросы Delphi 5 09.03.2011 02:11
Формат даты. agregator Microsoft Office Excel 3 21.01.2011 14:55
Формат даты Iskin Microsoft Office Excel 5 16.04.2009 14:49