Как сравнить даты в MS Access?

164
25 октября 2021, 09:10

В таблице столбцы date_in и date_out в виде "14.10.19"
Столбцы типа string

В программе получаю период, например, с "14.10.19" по "01.11.19"
Нужно выбрать строки, у которых date_in и date_out укладываются в выбранный интервал или если указана одна граница. Например, date_in то выбрать все, которые после этой даты

Пробовал

WHERE Date(date_in)>Date("14.10.19")  
WHERE date_in>"14/10/19"

получаю строки у которых день месяца больше указанного, месяц и год игнорируются
можно написать и

DateTime dt=Convert.ToDateTime(datetime);
WHERE DAY(date_in)>dt.Day and MONTH(date_in)

и т.д. Но хотелось бы покороче.

Answer 1

У вас явно неверно спроектирована база данных. Выбор по диапазону дат из поля типа "строка" корректно невозможен без дополнительных преобразований. Для того, что бы избежать подобного, необходимо тип полей date_in и date_out изменить на "Дата и время" (для MS Access) через конструктор таблиц.

После этого запрос на выборку по диапазону дат будет иметь достаточно короткий и очевидный вид:

SELECT * 
FROM TableName 
WHERE date_in BETWEEN #10/14/2019# AND #11/1/2019#;

Хочу отдельно обратить внимание на формат констант типа дата в запросе: для MS Access они должны быть строго в формате USA: #M/D/YYYY#, то есть, даты и месяц указываются без предстоящего нуля (не 01-31 и 01-12, а 1-31 и 1-12), и месяц указывается перед датой. Разделитель - строго слеш /. Дата оборачивается с двух сторон в решетки #.

READ ALSO
Ассоциировать данные массива с данными из другого массива

Ассоциировать данные массива с данными из другого массива

У меня имеется массив в котором содержатся данные типа

250
Как сравнить объекты между собой, которые еще являются массивами?

Как сравнить объекты между собой, которые еще являются массивами?

Мне нужно сравнить объекты между собой, которые еще являются массивамиПотом сортировать их методом пузырька

66
Странное поведение Application.Quit();

Странное поведение Application.Quit();

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

262
Как отслеживать попадания label в panel

Как отслеживать попадания label в panel

Объясните, как можно отслеживать label, когда он попадает в panel с drag and dropФайлы как перемещать нашел, а как это делать с внутренними объектами...

157