从java在sqlite数据库中插入日期

时间:2015-01-17 13:29:20

标签: java sqlite

我的前端是java,后端(数据库)是sqlite。

当我从JDateChooser选择日期时,我想像这样存储日期和时间:

Saturday, January 17, 2015 3:44:12 PM

那我该怎么做?

我不知道我应该在dateFormatString的{​​{1}}属性中写出什么价值,以便获得上述格式化的日期和时间。

表格中有四列。一列名称为“Date”,其数据类型为jDateChooser

在此列中,我想存储格式化的日期和时间。

对于日期和时间插入,我编写了以下代码:

DATETIME

1 个答案:

答案 0 :(得分:2)

存储日期的正确方法是将其存储为Timestamp对象。数据库中的TIMESTAMP不是字符串,并且它没有格式。

使用字符串设置日期/时间戳字段是不好的做法,因为可能存在歧义。 JDBC允许您分别使用java.sql.Date java.sql.TimestampPreparedStatemet将其设置为setDate()setTimestamp()

因此,您使用JDateChoosergetDate()获取日期,将其转换为毫秒,从中创建Timestamp对象,然后使用setTimestamp进行设置。

try
{   String sql = "insert into tbexpense (`No.`, Subject_expense, Cost, Date) values (?, ?, ?, ?)";
    pst = conn.prepareStatement(sql);
    pst.setString(1, txtNo.getText());
    pst.setString(2, txtexpense.getText());
    pst.setString(3, txtcost.getText());
    pst.setTimestamp(4, new java.sql.Timestamp(jDateChooser1.getDate().getTime()) );
    pst.execute();
    JOptionPane.showMessageDialog(null, "Saved.");
    Update_table();
}
catch(Exception e)
{   JOptionPane.showMessageDialog(null, e);
}

当您需要显示已存储在数据库中的日期时,您可以使用DateFormatter正确格式化它。此时,仅在此时,您将DateTimestamp对象转换为字符串。