postgresql中的日期

Ari*_*jas 0 java postgresql date

如何将java Date对象插入Postgresql DATE单元格?

当我这样做时,这是错的:

Calendar date = Calendar.getInstance(); // wrong
Date date = new Date(); // wrong         

String addRecord = "INSERT INTO " + GlobalFields.PACJENCI_TABLE +
                                "VALUES (" + date + ");";
stat.executeUpdate(addRecord)
Run Code Online (Sandbox Code Playgroud)

我没有更多的想法......

PS:

public static void CreatePacjenciTable()
{
    try
    {
        Connection conn = DataBase.Connect();

        try
        {
            Statement stat = conn.createStatement();

            String createTable = "CREATE TABLE " + GlobalFields.PACJENCI_TABLE 
                + "(dataUrodzenia DATE);";

            stat.executeUpdate(createTable);
        }
        finally
        {
            conn.close();
        }
    }
    catch(SQLException e)
    {
        e.printStackTrace();
    } 
}
Run Code Online (Sandbox Code Playgroud)

Tom*_*son 5

你不应该这样做!

永远不要构造带有参数的SQL字符串.而是创建PreparedStatement并在其上设置参数.像这样:

    String addRecord = "INSERT INTO " + GlobalFields.PACJENCI_TABLE + "VALUES (?);";
    PreparedStatement stmt = conn.prepareStatement(addRecord);
    stmt.setDate(1, new Date(System.currentTimeMillis()));
    stmt.executeUpdate();
Run Code Online (Sandbox Code Playgroud)

注意,Date有一个java.sql.Date,它是正常的子类,java.util.Date其中一天中的时间总是午夜UTC; 它用于表示实际日期,而不是时刻.您也可以使用a java.sql.Timestamp代表一个时刻.