Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 21.04.2018
Сообщений: 9

Работа с датами в sql запросе

21.04.2018, 16:33. Показов 3223. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Имеется такой запрос:
C#
1
string sql = "SELECT type_repair, repair_date FROM fix WHERE DATE(repair_date) BETWEEN " + StartDate + " AND " + EndDate;
Где
C#
1
2
DateTime StartDate = dateTimePicker1.Value.Date;
DateTime EndDate = dateTimePicker2.Value.Date;
Хочу получить данные из запроса которые попадают в диапазон дат. Соответственно, текстовое поле repair_date должно находиться в диапазоне, выбранном из dateTimePicker1 и dateTimePicker2.
Но постоянно выскакивают ошибки, то синтаксические, то несоответствие количества аргументов.
Даже если делать так
C#
1
string sql = "SELECT type_repair, repair_date FROM fix WHERE DATE(repair_date) BETWEEN '10.05.2017' AND '20.04.2018';
то тоже получаю ошибку.
Как сравнить значение из поля БД (текст) на нахождение в интервале дат? Уже мозг отказывает, не доходит. Особо смущает
C#
1
DATE()
. В каком виде он представляет дату?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.04.2018, 16:33
Ответы с готовыми решениями:

C# + Access работа с датами в запросе
Доброго времени суток господа! столкнулся с проблемой передачи даты как параметра в запросе к бд Access из проекта WebService ...

Работа с датами в запросе (1С 8.1)
Здравствуйте, дамы и господа ! Я сам программист (Delphi, VB) со стажем, но за 1С сел впервые. В частности, у меня возник вопрос по...

Работа с датами в запросе
Мне необходимо создать запрос на выборку по диапазонам дат "Текущий месяц"; "Следующий месяц". С текущей датой по полю вопросов...

6
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,228
21.04.2018, 20:00
Вам нужно для начала изменить тип столбца с текстового на тип даты в SQL Server-е - datetime2 (желательно).
И входные параметры также передавать в виде дат, а не строк.
Тогда between будет работать корректно.

Afaik, Date принимает на входу тип даты и времени и удаляет временную составляющую (обнуляя ее).
0
Эксперт .NET
 Аватар для Usaga
14127 / 9347 / 1350
Регистрация: 21.01.2016
Сообщений: 35,125
22.04.2018, 06:01
Ещё добавлю, что в запрос можно и строку передавать с датой, но с форматом этой строки нужно быть осторожным, ибо база будет парсить её в зависимости от настроек локали, если не сможет понять формат. Там, где вы передаёте даты в запрос в виде строк, лучше опираться на формат ISO8601 (год-месяц-день). А ещё лучше использовать параметризованные запросы как было порекомендовано выше, тогда не ошибётесь.
0
0 / 0 / 0
Регистрация: 21.04.2018
Сообщений: 9
22.04.2018, 08:06  [ТС]
Там данных уже в столбце 100500 строк, образно говоря. Не хотелось бы переделывать. ( Хотя, конечно, надо было сразу тип столбца делать дата/время.
0
Эксперт .NET
 Аватар для Usaga
14127 / 9347 / 1350
Регистрация: 21.01.2016
Сообщений: 35,125
22.04.2018, 09:47
WolfnrWolfness, а что, вы каждую строку вручную собрались переделывать? Или, всё таки, применить запрос можно для автоматизации этого дела?
0
0 / 0 / 0
Регистрация: 21.04.2018
Сообщений: 9
22.04.2018, 13:35  [ТС]
Usaga, запросом, конечно. Вручную это жесть.
0
Эксперт .NET
 Аватар для Usaga
14127 / 9347 / 1350
Регистрация: 21.01.2016
Сообщений: 35,125
22.04.2018, 14:02
WolfnrWolfness, ну так в чём дело, тогда сделать ALTER TABLE ADD ... + UPDATE Table SET A = CAST(B AS DATETIME) + ALTER TABLE DROP COLUMN ... ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.04.2018, 14:02
Помогаю со студенческими работами здесь

Работа с датами в SQL Server 2005
Привет всем... У мя тут есть такая проблема... Я написал следующий запрос: DECLARE @qwe CHAR(19) SET @qwe = '2012-03-19...

Работа с датой в запросе sql
Вот такой запрос: Form1->ADOQuery1->SQL->Text="INSERT INTO Table1(Код, ) VALUES ("+ QuotedStr(Edit10->Text) +","+...

Условие в запросе свзяанном в датами
Добрый день! Прошу совета! В поле данного типа "Дни: DateDiff("d";;;2)" в запросе ввести условие чтобы указывались данные больше...

SQL запросы с датами
Помогите сформировать поиск а) Найти самого молодого и самого старого клиента б) Найти карту с максимальным сроком действия в) Найти...

Запрос SQL с датами
Помогите, пожалуйста 1. Выбрать номера читательских билетов тех читателей, которые имеют задолженность более 4 месяцев. (важно!!!) ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru