Как построить запрос для получения строк с пустым полем в доступе, тип данных которых является дата? - PullRequest
0 голосов
/ 05 августа 2011

Я создаю программу в vb6, которая просит меня получить строки в таблице, имеющей поле return_date, которое, очевидно, имеет тип данных date / time, и оно пустое.

Так что в моей системе я хочу построитьзапрос на получение книг не возвращается.то есть поле return_date не заполнено.

SELECT * 
FROM loans 
WHERE return_date = ""

Я пробовал описанное выше, но сообщалось о несоответствии типов данных ... ошибка ...!

Есть предложения ...?

Ответы [ 4 ]

2 голосов
/ 05 августа 2011
select * from loans where return_date IS NULL;
2 голосов
/ 05 августа 2011

Если return_date действительно является типом данных Дата / Время, то пустое значение означает, что поле имеет значение Null. Так что используйте это в качестве условия WHERE.

SELECT * FROM Loans WHERE return_date Is Null;

Редактировать : ошибка несоответствия типов данных произошла из-за того, что вы просили ядро ​​базы данных сравнить строковое значение ("") с полем даты / времени.

Edit2 : В другом ответе предлагались одинарные кавычки. Одиночные кавычки приведут к той же ошибке «Несоответствие типов данных в выражении критерия», что и ОП, полученная при использовании двойных кавычек при сравнении пустой строки с полем даты / времени.

Я создал таблицу ссуд с полями id (autonumber) и return_date (Date / Time) и добавил 2 записи: одну с сегодняшней датой для return_date, а другую с Null для return_date. Этот запрос выдает ошибку несоответствия ..

SELECT *
FROM loans
WHERE return_date='';

... так же, как этот запрос ...

SELECT *
FROM loans
WHERE return_date="";
2 голосов
/ 05 августа 2011

используйте одинарные кавычки, или если поле пустое, если даты нет, используйте where return_date is null

0 голосов
/ 05 августа 2011

Может быть, вам стоит попробовать

SELECT * 
FROM loans 
WHERE return_date Is Null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...