С Новым годом! Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
 Аватар для zewer
2356 / 1774 / 212
Регистрация: 07.01.2011
Сообщений: 10,342

Неправильно читает в string значение DATETIME

31.05.2015, 00:19. Показов 1692. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте, есть БД MySQL в которой в колонке date есть запись
MySQL
1
2015-05-28 19:44:15
.
Когда я с С# читаю запись, то мне в переменную str_time пишет
MySQL
1
28.05.2015 19:44:15
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if (this.OpenConnection() == true)
            {
                if (Convert.ToInt32(s) > count)//connection already open -- crash
                    return "Cannot DELE this msg";
                count = 1;
                MySqlCommand cmd = new MySqlCommand(query, connection);
                MySqlDataReader dataReader = cmd.ExecuteReader();
                while (dataReader.Read())
                {
                    if (count == Convert.ToInt32(s))
                    {
                        str_time += dataReader["date"];//вот тут
                        str_text += dataReader["text"];
                        break;
                    }
                    count++;
                }
                this.CloseConnection();
                //return "message " + s + " deleted";
            }
Как сделать что б писало тоже значение что и в БД? Просто я после этого должен использовать другой запрос на основе того что получаю, а дата
MySQL
1
28.05.2015 19:44:15
являеться для MySQL неправильным форматом

Добавлено через 40 минут
Решил хаком

C#
1
2
3
4
5
private string HackMethod(string str)
        {
            string[] split = str.Split(new Char[] { '.', ' ' });
            return split[2] + "-" + split[1] + "-" + split[0] + " " + split[3];
        }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.05.2015, 00:19
Ответы с готовыми решениями:

USBasp неправильно читает Flash, но правильно читает EEprom
Ребята выручайте, нужен мозговой штурм... Пару лет назад собрал USBasp, до недавнего времени прекрасно работал с Хазамой и Дудкой. Чипы я...

Из string в DateTime - Exception "String was not recognized as a valid DateTime"
У меня в базе данных есть записи такого рода: 2016-8-4 0:01:13 Как можно конвертировать обратно в DateTime в C#? Мои попытки: while...

DateTime.ParseExact(String, String, IFormatProvider)
Обьясните пожалуста действие второго string(format) в методе DateTime.ParseExact(String, String, IFormatProvider),как выбирать формат в...

8
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
31.05.2015, 08:45
А для чего ты дату преобразуешь в строку при считывании? Пусть она остаётся в формате даты, тогда и преобразовывать ничего не нужно - это вообще лишнее действие.
0
 Аватар для zewer
2356 / 1774 / 212
Регистрация: 07.01.2011
Сообщений: 10,342
31.05.2015, 12:07  [ТС]
Цитата Сообщение от nmcf Посмотреть сообщение
А для чего ты дату преобразуешь в строку при считывании? Пусть она остаётся в формате даты, тогда и преобразовывать ничего не нужно - это вообще лишнее действие.
я же написал, ту дату которую я считаю, я потом использую в другом запросе. Т. е. второй запрос формируеться на основании результатов первого. А в второй запрос дату я запхать не могоу, из-за неправильного формата
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18245 / 14162 / 5366
Регистрация: 17.03.2014
Сообщений: 28,848
Записей в блоге: 1
31.05.2015, 13:24
nmcf, у даты нет формата, он есть только у строкового представления даты который имеет смысл только в контексте отображения данных пользователю. Внутри программы дату следует хранить как DateTime. В данном случае следует читать дату с помощью MySqlDataReader.GetDateTime и передавать в другой запрос с помощью параметров.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
31.05.2015, 22:17
Цитата Сообщение от OwenGlendower Посмотреть сообщение
у даты нет формата
Я и имел в виду тип дата, а не строковое представление.
Не надо дату в строку преобразовывать.
0
01.06.2015, 00:05

Не по теме:

nmcf, я по ошибке написал тебе вместо ТС. Извини :)

0
 Аватар для zewer
2356 / 1774 / 212
Регистрация: 07.01.2011
Сообщений: 10,342
01.06.2015, 12:50  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Внутри программы дату следует хранить как DateTime.
она сохраняет так же, по крайней мере если использовать
C#
1
DateTime.Now
то время возвращаеться в таком же формате как и выше, т.е. DD.MM.YYYY, а не YYYY-MM-DD как надо для MySQL
0
27 / 27 / 10
Регистрация: 18.08.2014
Сообщений: 212
01.06.2015, 13:07
Метод изменения формата даты. Я использовал его для SQLite
C#
1
2
3
4
5
        public static string ToDateSQLite(DateTime value)
        {
            string format_date = "yyyy-MM-dd HH:mm:ss.fff";
            return value.ToString(format_date);
        }
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18245 / 14162 / 5366
Регистрация: 17.03.2014
Сообщений: 28,848
Записей в блоге: 1
01.06.2015, 13:31
Цитата Сообщение от zewer Посмотреть сообщение
она сохраняет так же, по крайней мере если использовать DateTime.Now
Если бы ты использовал DateTime, то и вопросов бы не было. Но ты пишешь:
C#
1
str_time += dataReader["date"];//вот тут
То есть преобразуешь дату в строку. Повторяю еще раз читай дату с помощью MySqlDataReader.GetDateTime и сохраняй в переменную типа DateTime. Затем передавай это значение в другой запрос с помощью параметра аналогичного типа.

Цитата Сообщение от zewer Посмотреть сообщение
то время возвращаеться в таком же формате как и выше, т.е. DD.MM.YYYY, а не YYYY-MM-DD как надо для MySQL
Еще раз повторяю - у даты нет формата. Ты смотришь на строковое представление даты. Это не одно и то же. Потому что одна и та же дата будет разный вид для разных языков, но само значение даты при этом будет одинаковое.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.06.2015, 13:31
Помогаю со студенческими работами здесь

Неправильно читает файл
Вот код программы (суть в тесте методов С++ по работе с бинарными файлами): #include "stdafx.h" #include <iostream> ...

Неправильно читает из файла
Привет. Не могу разобраться почему не работает код. На вход из файла подается три числа: 2, 4, 6. В цикле for неправильно считает...

Неправильно читает данные из файла
Ситуация следующая. Выполняю ввод данных(фамилия и возраст), затем они записываются в структурированный файл(функция newfile). После этого...

Неправильно читает двоичный файл
#include <iostream> #include <locale.h> using namespace std; /*14.Информационная система «Детали и изделия». Цех на предприятии ...

Приложение неправильно читает русские буквы
Друзья, помогите:) Программа одна написана на Java с использованием swing, awt итд, но не в этом суть. А суть в том что там есть...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru