Buna API tabanlı bir istemciden erişiyorsanız (sanırım sorgudaki '?' Lerden kaynaklanıyor gibi), bunu SQL'den ziyade programınızdan yapabilirsiniz.
Not: Geri kalanlar JDBC sözdizimi içindir, diğer API'ler/diller farklı sözdizimi olacak, ancak kavramsal olarak aynı olmalıdır. insert tarafında
sorgu tarafında
PreparedStatement stmt = connection.prepareStatement(
"INSERT INTO messages " +
"(typeId, messageTime, stationId, message) VALUES " +
"(?, ?, ?, ?)");
stmt.setInt(1, typeId);
stmt.setDate(2, new java.sql.Date(System.currentTimeMillis()));
stmt.setInt(3, stationId);
stmt.setString(4, message);
do:
PrepatedStatement stmt = connection.prepareStatement(
"SELECT typeId, messageTime, stationId, message " +
"from messages where messageTime < ?");
long yesterday = System.currentTimeMillis() - 86400000; // 86400 sec/day
stmt.setDate(1,new java.sql.Date(yesterday));
taşınabilir şekilde çalışması gerektiğini.
Bu sözdizimi hangi satıcıda çalışır? –
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html –
Her veritabanı, maalesef geçerli tarihi almak için kendi işlevine sahiptir. – jodonnell