mysql - 如果没有此“java.sql.SQLException:值'0000-00-00'不能表示为java.sql.Date”,我如何从数据库转换获取日期并显示
问题描述
我正在尝试在网页上显示插入到我的数据库中的详细信息
我尝试将日期转换为 sql 日期
public static List<Detail> getAllRecords(){
List<Detail> list = new ArrayList<Detail>();
try{
Connection con = getConnection();
PreparedStatement ps = con.prepareStatement("select * from studentDetails");
ResultSet rs = ps.executeQuery();
while(rs.next()){
Detail u = new Detail();
java.sql.Date dbSqlDate = rs.getDate("dob");
u.setPassword(rs.getInt("password"));
u.setName(rs.getString("name"));
u.setLastname(rs.getString("lastname"));
u.setUsername(rs.getString("username"));
u.setEmail(rs.getString("email"));
u.setAddress(rs.getString("address"));
System.out.println("dbSqlDate=" + dbSqlDate);
u.setAge(rs.getInt("age"));
list.add(u);
}
}catch(Exception e){System.out.println(e);}
return list;
}
我希望输出为 02/03/2000 ,但它不起作用
解决方案
Quickfix 是?zeroDateTimeBehavior=convertToNull
在建立连接时添加到 MySQL JDBC URL。
更长的答案的开始会指出......
默认情况下,MySQL 允许将特殊的“零”日期值存储在 DATE / DATETIME 列中。检索时,这些值是 format 中的字符串'0000-00-00'
。当通过 JDBC 引入 Java 时,Java 不允许 java.util.Date 值具有该值。
MySQL 的“零”日期行为可能会被sql_mode
. 我们可能还希望确保该列允许 NULL 值(即,如果该列未定义为 NOT NULL),和/或修改列定义以提供非零默认值...
列中已有的“零”日期值可以替换为 NULL 值,例如:
UPDATE `studentDetails` SET dob = NULL WHERE dob = '0000-00-00'
zeroDateTimeBehavior 记录在这里:
https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.html
MySQL DATE 行为记录在这里
https://dev.mysql.com/doc/refman/8.0/en/date-and-time-types.html
摘抄:
MySQL 允许您将“零”值存储
'0000-00-00'
为“虚拟日期”。在某些情况下,这比使用 NULL 值更方便,并且使用更少的数据和索引空间。要禁止'0000-00-00'
,请启用该NO_ZERO_DATE
模式。
推荐阅读
- python - 如何根据条件从不同的类继承?
- orocrm - ORO storefront RestAPI related entity normalization issue
- python-3.x - Python Virtual Environment Batch File Execution failing on Windows and not giving correct result
- java - Concatting Strings Across Functions
- r - R remove string after second underscore
- android - 在 Android 映像构建期间 build/core 查找 Android.mk/.bp 时如何排除目录?
- r - 在计数再次开始之前标记行
- python - Python包安装失败
- bash - 使用非 root 用户在 Dockerfile 中运行 root 服务
- javascript - 添加淡入淡出/动画