数据库中的日期列与 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");
我必须在 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");