Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从java在sqlite数据库中插入日期_Java_Sqlite - Fatal编程技术网

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

从java在sqlite数据库中插入日期,java,sqlite,Java,Sqlite,我的前端是java,后端(数据库)是sqlite 当我从JDateChooser中选择日期时,我希望像这样存储日期和时间: Saturday, January 17, 2015 3:44:12 PM 存储日期的正确方法是将其存储为时间戳对象。数据库中的TIMESTAMP列不是字符串,也没有格式 使用字符串设置日期/时间戳字段是不好的做法,因为可能存在歧义。JDBC允许您分别使用PreparedStatemet的setDate()和setTimestamp()将其直接设置为java.sql.Dat

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

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

Saturday, January 17, 2015 3:44:12 PM
存储日期的正确方法是将其存储为
时间戳
对象。数据库中的
TIMESTAMP
列不是字符串,也没有格式

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

因此,您可以使用
getDate()
JDateChooser
获取日期,将其转换为毫秒,从中创建一个
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
对其进行正确格式化。此时,并且仅在此时,您将
日期
时间戳
对象转换为字符串。

您不使用格式存储日期。它不是一根弦。通常,它是一个内部实现,指示从给定的“零”日期起经过的时间。只有在需要显示时才对其进行格式化,而不是在存储时进行格式化。只需将日期存储为特定的格式化字符串,就会导致各种问题。格式为
yyy-MM-DD HH:MM:SS
。阅读以了解更多信息。在将日期存储到数据库中之前,如何使用AM或AM将日期格式化为周、月、12小时时钟的名称PM@user3216114为了什么?MySQLs
DateTime
format将不接受这一点。
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);
}