繁体   English   中英

如何将空的 DateTime 插入 MS Access 数据库?

[英]How do I insert an empty DateTime to a MS Access database?

我的问题是我不知道如何处理空的 LocalDate 对象。

我有一个 Excel 工作表,其中有一个日期列。 格式是这样的:

19693112 或 00000000(如果日期未知)

在我的 Java 应用程序中,我更改了数据的格式并将其上传到数据库。

我首先将字符串转换为我需要的格式(即 31.12.1969)。

我可以毫无问题地将第一种格式插入到我的数据库中。 但第二个永远不会工作,因为我的转换类将其转换为 00.00.0000 并且这不被 MS Access 接受。

我已经尝试将值设置为“null”,但数据库无法处理日期字段的此值。

有没有办法让数据库中的值只显示一个空的日期字段?

谢谢你的帮助。

public static void insertNewPensioners(List<Pensioner> newPensioners) {

    if (cell.getColumnIndex() == indexe.get(19)) { //checks if correct excelcell is used
        String cellValue = cell.getStringCellValue();
        if (cellValue.matches("0+")) {
            resignationDate = null;
        } else {
            resignationDate = DateFormatter.formatDate(cellValue);
        }

        pensionerExcel.add(new Pensioner(pknr, idkz, resignationDate));

        insertNewPensioners(newPensioners);
        
        public static void insertNewPensioners (List < Pensioner > newPensioners) {
            try {
                connect(pathDB);
            } catch (Exception e) {
                Alerts.connectionError();
                e.printStackTrace();
            }

            for (int i = 0; i < newPensioners.size(); i++) {
                String insert = ("Insert into Pensionär (PKNR, IDKZ, ResignationDate) VALUES " +
                        "(?,?,?)");
                try {
                    ps = connection.prepareStatement(insert);
                    ps.setInt(1, newPensioners.get(i).getPensionInsuranceNumber());
                    ps.setInt(2, newPensioners.get(i).getIdkz());
                    ps.setDate(3, Date.valueOf(newPensioners.get(i).getResignationDate()));
                    ps.executeUpdate();
                    validRows++;
                } catch (Exception e) {
                    Alerts.wrongValues();
                    e.printStackTrace();
                }
            }
            close();
        }

null 会再次给出空指针异常。 他还检查了一个空字符串,但我想要的是将 00000000“转换”为空的 LocalDate。 我需要知道如何获得可以在我的 ms access 数据库中使用的格式。

但事实是 - 如前所述 - Access 表中的“空日期”为Null - 没有其他选择。

所以:

  • 修改您的代码为您的空日期插入Null
  • 调整您的代码以期望并接受空日期的Null并将其转换为您的代码接受的任何内容(00000000)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM