Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/68: Рейтинг темы: голосов - 68, средняя оценка - 4.71
 Аватар для Alchi09
206 / 135 / 6
Регистрация: 15.11.2009
Сообщений: 1,654

Запись поля datetime в БД - дата не записывается

26.08.2014, 19:50. Показов 12672. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Делаю так:

C#
1
2
3
4
5
6
7
8
9
10
string format = "yyyy-MM-dd";
DateTime CreateDTzap = DateTime.Now.Date;
string dt = "2012-12-12 12:00:00.000";
SqlConnection cnw = new SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=base;Data Source=sql1.qwe.local");
SqlCommand cmd = new SqlCommand();
cmd.Connection = cnw;
cnw.Open();
cmd.CommandText = @"INSERT INTO dbo.qwe (CreateDTzap) VALUES ("+dt+")";
cmd.ExecuteNonQuery();
cmd.Clone();
Проблема в том, что дата не записывается.
как только не пробовал. Ругается "Неправильный синтаксис около конструкции "12"." То есть на часы. Пробовал записывать через переменную +CreateDTzap.ToString(format)+, format по разному писал. Вообще все бесполезно. Если попробовать записать через string dt = "2014-08-26"; то в бд записывается значение 1905-06-04 00:00:00.000. Вообще отлично... Может кто сталкивался? Visual C# 2010, MS SQL Server 2008
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.08.2014, 19:50
Ответы с готовыми решениями:

В БД записывается только дата, а нужно еще и время
Не совсем понимаю, почему так происходит. В БД это поле имеет тип datetime. Вот кусок моего кода: DateTime thisDay = DateTime.Today;...

Определить тип данных запись, имеющий поля фамилия, пол, заработная плата, дата рождения
Определить тип- данных запись,имеющий поля фамилия,пол,заработная плата,дата рождения.Определить массив из 10 записей.В программе ввести в...

Создайте запись с именем Friend, содержащую следующие поля: фамилия и инициалы, дата рождения, адрес
1.Создайте запись с именем Friend, содержащую следующие поля: фамилия и инициалы, дата рождения, адрес. Разработайте макрос, с помощью...

12
 Аватар для Монфрид
1245 / 1055 / 293
Регистрация: 07.03.2012
Сообщений: 3,247
26.08.2014, 21:35
вручную попробуйте добавить дату в management studio, какого формата она должна быть
1
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
26.08.2014, 21:39
Потому что запрос после восьмой строки будет:
SQL
1
INSERT INTO dbo.qwe (CreateDTzap) VALUES (2012-12-12 12:00:00.000)
Нужно строку с датой взять в кавычки. А вообще, правильно передавать через параметры.
2
 Аватар для Alchi09
206 / 135 / 6
Регистрация: 15.11.2009
Сообщений: 1,654
27.08.2014, 12:05  [ТС]
Монфрид, вручную она приобретает такой вид 2012-12-12 12:00:00.000
Петррр, ага, получилось. Но мне нужно текущее время. если делать

C#
1
2
3
4
string format = "'yyyy-MM-dd hh:mm:ss.nnn'";
DateTime CreateDTzap = DateTime.Now.Date;
cmd.CommandText = @"INSERT INTO dbo.qwe (CreateDTzap) 
               VALUES (" + CreateDTzap.ToString(format) + ")";
то ругается на "Неправильный синтаксис около конструкции "hh:"." то есть от чего ушел в попытка добавлять значение из переменной dt, к тому и пришел обратно
А если передавать через параметры, то код получится очень громоздкий, мне нудно добавлять порядка 40 значений.
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
27.08.2014, 12:11
Цитата Сообщение от Alchi09 Посмотреть сообщение
Но мне нужно текущее время
C#
1
cmd.CommandText = @"INSERT INTO dbo.qwe (CreateDTzap) VALUES (CURRENT_TIMESTAMP)";
1
 Аватар для sigmov
585 / 372 / 63
Регистрация: 22.07.2009
Сообщений: 875
Записей в блоге: 4
28.08.2014, 09:05
C#
1
2
3
4
5
....
cmd.CommandText = @"INSERT INTO dbo.qwe (CreateDTzap) VALUES (@dt)";
cmd.Parameters.Add("@dt", DateTime.Now.Date);
cmd.ExecuteNonQuery();
....
1. Товарищи, используйте параметризированные запросы, а то постоянно фигней страдать будете......
2. Не забывайте использовать USING для объектов поддерживающих IDisposable
1
22 / 21 / 8
Регистрация: 17.02.2011
Сообщений: 399
12.07.2018, 09:00
Я извиняюсь, можно поподробней об использовании в данном случае using
0
Эксперт .NET
 Аватар для Rius
13114 / 7675 / 1674
Регистрация: 25.05.2015
Сообщений: 23,405
Записей в блоге: 14
12.07.2018, 10:05
Оператор using (Справочник по C#).
1
22 / 21 / 8
Регистрация: 17.02.2011
Сообщений: 399
12.07.2018, 10:17
В вашем коде получается вставить дату но вот время получается равным нулю, как поправить этот момент?
0
Эксперт .NET
 Аватар для Rius
13114 / 7675 / 1674
Регистрация: 25.05.2015
Сообщений: 23,405
Записей в блоге: 14
12.07.2018, 10:51
В вашем - это в чьём именно?
0
22 / 21 / 8
Регистрация: 17.02.2011
Сообщений: 399
12.07.2018, 10:57
Ну в смысле в этой теме, как советовали, не вы, а человек выше, сделать параметр,я сделал таким образом
C#
1
2
3
4
5
6
 SqlCommand sqlCm = new SqlCommand("INSERT INTO TableParty (DateTime) VALUES (@DateTime)", sqlCn);
            SqlParameter sqlP = new SqlParameter();
            sqlP.ParameterName = "@DateTime";
            sqlP.Value = DateTime.Now.Date;
            sqlP.SqlDbType = SqlDbType.DateTime;
            sqlCm.Parameters.Add(sqlP);
Как передать время в этот параметр?
0
Эксперт .NET
 Аватар для Rius
13114 / 7675 / 1674
Регистрация: 25.05.2015
Сообщений: 23,405
Записей в блоге: 14
12.07.2018, 11:04
Он уже передан:
Цитата Сообщение от leonidSDF Посмотреть сообщение
C#
1
sqlP.Value = DateTime.Now.Date;
Добавлено через 1 минуту
А, время... Дата и время:
C#
1
sqlP.Value = DateTime.Now;
1
22 / 21 / 8
Регистрация: 17.02.2011
Сообщений: 399
12.07.2018, 11:11
Получилось, спс, позвольте ещё спросить, у меня вторая таблица имеет отношение с внешним ключом в первой таблице, первая таблица это столбцы party (ключ) datetime, во второй move (ключ) x y datetime party (внешний ключ), когда я передаю данные во вторую таблицу должен ли я записывать данные и в столбец Party, или должен быть спец запрос который автоматом туда заносит такое же значение как и в первой таблице. Объяснил как смог.
Миниатюры
Запись поля datetime в БД - дата не записывается  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.07.2018, 11:11
Помогаю со студенческими работами здесь

Описать запись с именем NOTE, содержащую следующие поля: фамилия, имя, номер телефона, дата рождения
Описать запись с именем NOTE, содержащую следующие поля: фамилия, имя, номер телефона, дата рождения (массив из трёх чисел). Написать...

Дата записывается в БД неправильно
Нужно чтобы пользователь выбрал дату(из календаря), затем она должка записаться в базу, после чего появиться на странице админа, все якобы...

Не записывается дата рождения
<select size="1" name="DR"><option value="0">Год<option value="2011">2011<option value="2010">2010<option...

Дата и время не записывается в базу
Ситуация такая: с помощью объекта NOW на аспе вывожу дату и время, но немогу записать её в базу данных SQL Server'a - в базе тип поля ...

Не правильно записывается Дата и время в таблицу
Форумчане, доброго времени суток! Возникла странная ситуация, прошу Вашего анализа. Есть "таблица1" Аксесс-2003,...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера 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. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru