簡體   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