Я обычно использую VARCHAR(255) и в java пишу preparedStatement.setString(...). Но в SQL есть тип данных DATE и DATETIME.
Мне бы хотелось узнать как сохранять дату (без времени) в MySQL с типом данных DATE и читать ее?
Дополнительный вопрос: эффективнее хранить дату в DATE тип данных или VARCHAR(255)/TEXT?
Вы можете использовать в базе данных тип DATE, а в java коде - LocalDate. Во время запроса конвертируйте одно в другое. Пример:
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("select '2019-05-18'");
resultSet.next();
LocalDate date = resultSet.getDate(1).toLocalDate();
Что касается того, использовать дату или строку, то тут однозначно - дату. Имея дату, можно делать "range" запросы. Пример:
SELECT *
FROM my_table
WHERE my_date BETWEEN '2019-01-01' AND '2019-10-01'
Продвижение своими сайтами как стратегия роста и независимости