проблемы с получением полной информации DATE из базы данных Oracle (дд / мм / гггг чч / мм / сс) - PullRequest
0 голосов
/ 25 января 2012

У меня есть столбец в таблице, в котором мы храним дату в формате DATETIME.(DD-MON-RRRR HH24: MI: SS) - База данных Oracle 11g.Тип данных столбца - ДАТА, а дата хранения - в формате 01-01-2012 13:00 (т.е. 1 января 2012 г.).

сущность

@NotNull
@Column(name = "dateColumnName")
@Temporal(TemporalType.TIMESTAMP)
private Date sampleDate;

Я извлекаю все данные по дате прохождения

SAMPLE_QUERY = "select * from TableA tab where tab.dateWithTime = :sampleDate order by tab.dateWithTime ASC " 

singleDate: «Вт 24 января 00:00:00 IST 2012», fasttime: 1327343400000

Проблема в том, что я передаю только дату в запросе, хотя Дата, через которую выбираются записи, имеет формат DATE TIME, т.е. 01-01-2012 13:00 PM.

Как я могу изменить свой запрос, чтобы он выбирал все записи в порядке возрастания даты и времени.

Ответы [ 2 ]

1 голос
/ 25 января 2012

Если вы хотите получать все данные за этот день, измените запрос так, чтобы он был больше похож на

SELECT ... WHERE dateField >= :lowerParam AND dateField < :upperParam
0 голосов
/ 25 января 2012

Oracle не имеет DATE TIME типа данных. Тип данных DATE содержит как дату, так и компонент времени, с точностью до секунды. TIMESTAMPS становится немного сложнее.

Если ваш столбец dateWithTime действительно является типом данных DATE, предложение ORDER BY dateWithTime ASC должно упорядочивать результаты в порядке возрастания.

Возможно, вы не отображаете компонент времени вашей даты. Вы можете преобразовать дату в строку в этом формате с TO_CHAR( dateWithTime, 'dd/mm/yyyy hh24/mm/ss' ) или любым другим форматом.

Edit:

О, вы хотите сказать, что хотите найти случаи, когда компонент даты DATE совпадает, но вас не волнует компонент времени? Это может быть обработано в предложении where что-то вроде:

WHERE TRUNC( tab.dateWithTime ) = TRUNC( :sampledate )

TRUNC по умолчанию усекает дату до начала дня.

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