отметка времени в таблице - PullRequest
0 голосов
/ 10 февраля 2012

Тип данных столбца моей базы данных - метка времени.Как вставить текущую дату и время, используя PreparedStatement или Statement?

Я пробовал это:

java.util.Date date = new java.util.Date();
System.out.println("Current Date : " + dateFormat.format(date));

pstmt.setDate(9, new java.sql.Timestamp(date.getTime())); 

Но значение, вставленное в таблицу, равно 1328847536746. Это не правильно, яиспользую sqlite

Ответы [ 4 ]

0 голосов
/ 10 февраля 2012
DateFormat df = new SimpleDateFormat(yyyy/MM/dd HH:mm:ss); // any Date format
System.out.println("Current Date : " + df.format(new Date()));

pstmt.setDate(9, to_timestamp(df.format(new Date()),'YYYY/MM/DD HH24:MI:SS')); 

Здесь вы можете использовать TO_DATE('todayDate', 'YYYY/MM/DD HH24:MI:SS') или

TO_TIMESTAMP('todayDate', 'YYYY/MM/DD HH24:MI:SS')
0 голосов
/ 10 февраля 2012

Использовать setTimestamp () .

pstmt.setTimestamp(9, Timestamp.valueOf("2002-03-13 11:10:15.01"));
0 голосов
/ 10 февраля 2012

Это код, который я использовал до сих пор, чтобы сделать это

Timestamp nextRunTimestamp = null;
if(endDate != null || !endDate.equalsIgnoreCase(""))
{
    DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
    dateFormat.parse(endDate);
    Calendar tempDate = dateFormat.getCalendar();
    tempDate.set(Calendar.HOUR, nextRunTime.get(Calendar.HOUR));
    tempDate.set(Calendar.MINUTE, nextRunTime.get(Calendar.MINUTE));
    tempDate.set(Calendar.SECOND, nextRunTime.get(Calendar.SECOND));
    tempDate.set(Calendar.MILLISECOND, nextRunTime.get(Calendar.MILLISECOND));
    if(nextRunTime.before(tempDate) || nextRunTime.equals(tempDate))
    {
        nextRunTimestamp = new Timestamp(nextRunTime.getTimeInMillis());
    }
}
else
{
    nextRunTimestamp = new Timestamp(nextRunTime.getTimeInMillis());
}
statement.setTimestamp(2, nextRunTimestamp);
statement.setInt(3, result.getInt("id"));
statement.executeUpdate();
0 голосов
/ 10 февраля 2012

В java.sql.

существует отдельный класс значений Timestamp.
pstmt.setTimeStamp(9, new java.sql.Timestamp(date.getTime())); 

Javadoc объясняет:

public class Timestamp
extends Date

Тонкая оболочка вокруг java.util.Date, которая позволяет API JDBC идентифицировать его как значение SQL TIMESTAMP.

...