2014-12-19 4 views
-1

У меня есть таблица sql с записями, имеющими timestamp.Как выбрать дату по столбцу timestamp?

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

Возможно ли это, или мне нужно будет сэкономить sql.date столбец, чтобы получить все записи определенной даты?

@Entity 
public class MyEntry { 
    @Temporal(TemporalType.TIMESTAMP) 
    private Date date; 
} 

Этот sql не получит никакого результата, потому что запрос ищет только даты, не имеющие временной доли.

SELECT * FROM mytable wher date = '2015-10-10' 
+0

@downvoter: пожалуйста, дайте причину – membersound

+1

'select * from myentry где дата :: дата = дата«2015-10-10''. Btw: 'date' является ужасным именем для столбца. Это не только зарезервированное слово, но также не документирует значение столбца. Является ли это «сроком исполнения», «датой начала», «датой выпуска», ...? –

+0

Извините, да, вы правы, в моем приложении поле, конечно, не называется просто 'date'.! – membersound

ответ

0

Вы должны бросить это в отметку времени или timstamp с часовым поясом

SELECT * 
    FROM mytable 
WHERE date >= '2015-10-10 00:00:00.000'::timestamp 
    AND date < '2015-10-11 00:00:00.000'::timestamp 

или

SELECT * 
    FROM mytable 
WHERE date BETWEEN '2015-10-10 00:00:00.000'::timestamp AND '2015-10-11 00:00:00.000'::timestamp 

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

new Date().getTime(); 
+0

извините. Я не обратил на это внимания. Я меняю свой пост – Niels

Смежные вопросы