Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/47: Рейтинг темы: голосов - 47, средняя оценка - 4.74
 Аватар для narioz
1 / 1 / 0
Регистрация: 19.02.2012
Сообщений: 63

Несоответствие формата даты System.DateTime и DATETIME в SQL Express Edition

13.08.2013, 14:40. Показов 9478. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Столкнулся с такой проблемой: В System.DateTime дата пишется в формате дд.мм.гггг чч.мм.сс, а DATETIME в SQL Express Edition хочет получать дату в формате мм.дд.гггг чч.мм.сс. Как эту проблему можно решить?

Добавлено через 11 минут
поправка: SQL Compact Edition
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.08.2013, 14:40
Ответы с готовыми решениями:

DateTime выбор нужного формата даты
Доброго времени суток. подскажите, как можно взять значение поля DateTime в нужном формате? пример для пользователя выбор даты...

DateTime.Now для DateTime sql server
Я понимаю что данный вопрос не раз открывался но в поисках решения гуглю уже 2-ой день и все поиски без успешны пытаюсь записать в...

Почему DateTime.ToString("yyyy/M/d") ms sql принимает как DateTime?
Доброго времени суток. Я только только начал изучать С# и MS Sql. Подскажите пожалуйста почему DateTime.ToString("yyyy/M/d") в...

16
 Аватар для andrew_w2k
341 / 341 / 90
Регистрация: 04.03.2010
Сообщений: 648
13.08.2013, 15:41
C#
1
myDate.ToString("MM.dd.yyyy hh.mm.ss")
0
438 / 362 / 100
Регистрация: 29.06.2010
Сообщений: 981
Записей в блоге: 1
13.08.2013, 15:41
Работайте с датой как с типом DateTime, а не как со строкой.

В Sql форматирование дат при преобразовании в string зависит от настройки самого сервера
0
21 / 23 / 9
Регистрация: 26.07.2013
Сообщений: 109
13.08.2013, 15:45
Цитата Сообщение от narioz Посмотреть сообщение
Столкнулся с такой проблемой: В System.DateTime дата пишется в формате дд.мм.гггг чч.мм.сс, а DATETIME в SQL Express Edition хочет получать дату в формате мм.дд.гггг чч.мм.сс. Как эту проблему можно решить?
Сегодня столкнулся с такой проблемой, сперва работал напрямую через DateTime.Now, но потом SQL начал ругаться (ошибку пока не искал), я использовал время из команды SQL - CURRENT_TIMESTAMP. Попробуй, может поможет.
0
 Аватар для narioz
1 / 1 / 0
Регистрация: 19.02.2012
Сообщений: 63
13.08.2013, 15:57  [ТС]
Цитата Сообщение от tapinam Посмотреть сообщение
Сегодня столкнулся с такой проблемой, сперва работал напрямую через DateTime.Now, но потом SQL начал ругаться (ошибку пока не искал), я использовал время из команды SQL - CURRENT_TIMESTAMP. Попробуй, может поможет.
Дело в том, что часто в базу приходится заносить не только актуальное время, но и выбранное на календаре например, поэтому нужно именно подружить SQL Compact c DateTime'ом
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
13.08.2013, 17:09
Цитата Сообщение от narioz Посмотреть сообщение
В System.DateTime дата пишется в формате дд.мм.гггг чч.мм.сс, а DATETIME в SQL Express Edition хочет получать дату в формате мм.дд.гггг чч.мм.сс.
В System.DateTime дата пишется в том формате, каком захотите
А вообще правильно не преобразовывать DateTime в строки, а передавать как параметры в запросе. Вот тут полно примеров - https://www.cyberforum.ru/ado-... 82279.html
0
 Аватар для narioz
1 / 1 / 0
Регистрация: 19.02.2012
Сообщений: 63
13.08.2013, 17:43  [ТС]
Цитата Сообщение от turbanoff Посмотреть сообщение
В System.DateTime дата пишется в том формате, каком захотите
А вообще правильно не преобразовывать DateTime в строки, а передавать как параметры в запросе. Вот тут полно примеров - https://www.cyberforum.ru/ado-... 82279.html
да едришкин шишкин, с чего все взяли что я в строки преобразую то? я в базу и отправляю данные типа System.DateTime и не собираюсь их в строковый тип конвертить. всё дело в том, что база не принимает их в том виде в котором я посылаю. принимает, только если число от 1 до 12, месяц и всё остальное любые, иначе никак не принимает
0
438 / 362 / 100
Регистрация: 29.06.2010
Сообщений: 981
Записей в блоге: 1
13.08.2013, 19:54
Цитата Сообщение от narioz Посмотреть сообщение
да едришкин шишкин, с чего все взяли что я в строки преобразую то? я в базу и отправляю данные типа System.DateTime и не собираюсь их в строковый тип конвертить. всё дело в том, что база не принимает их в том виде в котором я посылаю. принимает, только если число от 1 до 12, месяц и всё остальное любые, иначе никак не принимает
А можно посмотреть на код, который отправляет дату в SQL Server?
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
13.08.2013, 21:19
Цитата Сообщение от narioz Посмотреть сообщение
да едришкин шишкин, с чего все взяли что я в строки преобразую то?
Я взял это, потому что вы написали вот эту фразу:
Цитата Сообщение от narioz Посмотреть сообщение
а DATETIME в SQL Express Edition хочет получать дату в формате мм.дд.гггг чч.мм.сс
0
 Аватар для narioz
1 / 1 / 0
Регистрация: 19.02.2012
Сообщений: 63
13.08.2013, 21:26  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        public void RunAddCommand(string text, DateTime time)
        {
            using (var conToDB = new SqlCeConnection(ConnectionString))
            {
                try
                {
                    conToDB.Open();
                   _cmd = new SqlCeCommand("INSERT INTO notes (text, date) VALUES ('@textParam', '@dateParam')", conToDB);
                    _cmd.Parameters.AddWithValue("@dateParam", time.Date);
                    _cmd.Parameters.AddWithValue("@textParam", text);
                    _cmd.ExecuteReader();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
        }
0
438 / 362 / 100
Регистрация: 29.06.2010
Сообщений: 981
Записей в блоге: 1
13.08.2013, 21:56
Вы показали код, покажите StackTrace ошибки, по вашему коду команде необходимо задать Connection. Если код просто набросок, тогда можно скрипт таблицы в которую вставляются данные.
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
13.08.2013, 22:04
Цитата Сообщение от narioz Посмотреть сообщение
_cmd = new SqlCeCommand("INSERT INTO notes (text, date) VALUES ('@textParam', '@dateParam')", conToDB);
Зачем вы параметры взяли в кавычки?
C#
1
_cmd = new SqlCeCommand("INSERT INTO notes (text, date) VALUES (@textParam, @dateParam)", conToDB);
1
 Аватар для narioz
1 / 1 / 0
Регистрация: 19.02.2012
Сообщений: 63
14.08.2013, 12:09  [ТС]
Цитата Сообщение от turbanoff Посмотреть сообщение
Зачем вы параметры взяли в кавычки?
C#
1
_cmd = new SqlCeCommand("INSERT INTO notes (text, date) VALUES (@textParam, @dateParam)", conToDB);
на сколько я понял этого требует диалект SQL Compact. это мало влияет на суть проблемы

Добавлено через 4 минуты
Цитата Сообщение от Grishaco Посмотреть сообщение
Вы показали код, покажите StackTrace ошибки, по вашему коду команде необходимо задать Connection. Если код просто набросок, тогда можно скрипт таблицы в которую вставляются данные.
метод находится в классе где всё есть. код взят именно из класса, не набросок. я уже объяснил проблему более чем подробно, зачем копать в другую сторону?
0
 Аватар для narioz
1 / 1 / 0
Регистрация: 19.02.2012
Сообщений: 63
14.08.2013, 12:12  [ТС]
Цитата Сообщение от Grishaco Посмотреть сообщение
Вы показали код, покажите StackTrace ошибки, по вашему коду команде необходимо задать Connection. Если код просто набросок, тогда можно скрипт таблицы в которую вставляются данные.
вот
Миниатюры
Несоответствие формата даты System.DateTime и DATETIME в SQL Express Edition  
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
14.08.2013, 13:53
Цитата Сообщение от narioz Посмотреть сообщение
на сколько я понял этого требует диалект SQL Compact. это мало влияет на суть проблемы
Откуда вы такое взяли? То есть убирание кавычек не помогает?

Вот по тексту ошибки видно, что он пытается значение '@dateTime' преобразовать в дату.
1
438 / 362 / 100
Регистрация: 29.06.2010
Сообщений: 981
Записей в блоге: 1
14.08.2013, 14:08
turbanoff, прав. На самом деле в SQL нельзя оперировать типом DATETIME, т.к. любое действие (SELECT, RETURN) приводит к преобразованию даты в текст (я имею ввиду работа с базой текстовыми запросами). И при вставке данных мы используем текст. У вас происходит преобразование даты в текст, а потом SQL пытается получить из текста дату, а так как настройки разные происходит ошибка.

Возьмите и передайте в свой запрос

SQL
1
2
3
4
5
conToDB.Open();
                   _cmd = NEW SqlCeCommand("INSERT INTO notes (text, date) VALUES ('@textParam', '@dateParam')", conToDB);
                    _cmd.Parameters.AddWithValue("@dateParam", TIME.Date);
                    _cmd.Parameters.AddWithValue("@textParam", text);
                    _cmd.ExecuteReader();
вместо time.Date, time.Date.ToString("MM.dd.yyyy"), как советовал andrew_w2k, если не получится поиграйтесь с форматом "dd.MM.yyyy", "yyyy.MM.dd" и т.д.
0
 Аватар для narioz
1 / 1 / 0
Регистрация: 19.02.2012
Сообщений: 63
14.08.2013, 14:18  [ТС]
проблема решена. спасибо turbanoff)) признаю свою ошибку, кавычки не нужны
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.08.2013, 14:18
Помогаю со студенческими работами здесь

DateTime в SQL запросе к базе данных C++/CLI. Нужен способ сравнить даты
Пользователь выбирает месяц при помощи dateTimePicker. Нам важен месяц, им выбранный. (Кстати, можно ли сделать так, чтобы dateTimePicker...

SQLite. Работа с DateTime. Как вытащить из БД и конвертировать в формат DateTime
У меня таблица SQLite Есть колонка INTEGER которая хранит значение типа "2018-06-09 16:10:00" Строка =...

Фильтр дат в таблице между DateTimePicker1.DateTime и DateTimePicker2.DateTime
Не пинайте сильно. Начинающий. Не срабатывает выбор дат из таблицы. База GDB Firebird. Поле таблицы DATAV в базе тип поля Date. ...

Можно ли создать поле в таблице с именем datetime ? типа datetime
Добрый день ! вопрос почти чайника : Можно ли создать поле в таблице с именем datetime ? типа datetime есть в одной бд ms sql...

Не могу вставить datetime в datetime путем INSERT INTO SELECT
Добрый день! Думаю мой вопрос ламерский и находится где-то в FAQ, где я его не нашел. Мне нужно продублировать данные с одной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru