Как получить даты от даты к дате в MS-ACCESS и JSP? - PullRequest
0 голосов
/ 01 июля 2011

Это запрос:

String query1 = "select * from Demand_Register где Payment_Date> = '" + fromDate + "' и Payment_Date <= '" + toDate + "'"; </p>

если toDate = 23/6/2011 и fromDate = 25/6/2011, тогда он извлекает данные только дат 24 и 25, а не 23? также, если toDate = 23/6/2011 и fromDate = 23/6/2011, тогда ничего не получается.

Заранее спасибо.

1 Ответ

0 голосов
/ 02 июля 2011

Даты в Access / Jet / ACE хранятся не как текстовое представление, а как двойные, где целая часть - это день с 30.12.1999, а десятичная часть - время. У всех дат есть часть времени.

Если вы использовали Now () для заполнения рассматриваемого поля или иным образом сохраняли часть времени, отличную от 0, в поле, вы не получите точного соответствия. Вместо этого вам придется использовать это:

  toDate>=#23/6/2011# AND toDate<#24/6/2011# AND fromDate>=#25/6/2011# AND fromDate<#26/6/2011#

Это будет включать toDate значения, которые относятся к дню 23/6/2011, но имеют временную часть.

Теперь я хотел бы спросить, почему вы включаете часть времени, отличную от 0, в поля с именами toDate и fromDate - если они действительно являются датами, они должны иметь только часть времени. Если вы заполняете эти даты в Access или через Jet / ACE SQL, вы можете использовать функцию Date (), которая возвращает только часть даты, а не Now (), которая возвращает текущую дату и время.

Чтобы исправить данные, имеющие значения времени, когда они должны быть только значениями даты, просто запустите обновление, чтобы изменить поля на целочисленные значения, например, SET toDate = Int(toDate).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...