Разница между столбцом даты в базе данных и датой в java - PullRequest
1 голос
/ 03 марта 2020

Мне нужно создать таблицу в PostgreSQL. Один из столбцов - add_date, который должен содержать текущую дату, в которую была вставлена ​​строка.

Я запутался между:

Должен ли я создать столбец как add_date DATE NOT NULL DEFAULT CURRENT_DATE и позволить базе данных выполнить генерацию даты.

ИЛИ

Я должен объявить столбец как VARCHAR и передать текущую дату, используя java.

Какой должен быть лучший подход и Почему я должен go для одного?

Спасибо.

1 Ответ

2 голосов
/ 03 марта 2020

НИКОГДА хранить значения даты в столбце VARCHAR, только не

Столбец обязательно должен быть определен с типом данных DATE. Хотите ли вы указать значение из Java - это другой вопрос.

Но даже если вы правильно определите его как

add_date DATE NOT NULL DEFAULT CURRENT_DATE

, вы все равно можете передать дату с Java.

String sql = "insert into the_table (some_column, add_date, other_column) values (?,?,?)"
PreparedStatement pstmt = connection.prepareStatement(sql);
pstmt.setInt(1, 42);
pstmt.setObject(2, LocalDate.now());
pstmt.setString(3, "Some String");
...