数据库中的日期列与 java 中的日期之间的差异

Difference between Date column in database vs Date in java

我必须在 PostgreSQL 中创建一个 table。其中一列是 add_date,它应该包含插入行的当前日期。

我很困惑:

我是否应该创建一个列作为 add_date DATE NOT NULL DEFAULT CURRENT_DATE 并让数据库完成生成日期的工作。

我应该将列声明为 VARCHAR 并使用 java 传递当前日期。

最好的方法应该是什么?我为什么要采用这种方法?

谢谢。

从不 将日期值存储在 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");