2014-09-06 69 views
-1

我有一個表db_mafia.game:插入時間之間有兩個DATETIME

CREATE TABLE db_mafia.game (
id int(11) NOT NULL AUTO_INCREMENT, 
date_start datetime NOT NULL, 
date_finished datetime NOT NULL, 
id_header int(11) NOT NULL, 
game_lenght time NOT NULL, 
PRIMARY KEY (id) 
) 
    ENGINE = INNODB 
    AUTO_INCREMENT = 51 
    CHARACTER SET utf8 
    COLLATE utf8_general_ci; 

,我在這個表中的數據插入來自JAVA

try { 
    Class.forName("com.mysql.jdbc.Driver"); 
       Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/db_mafia","root","qwerty"); 

            String sql = "INSERT INTO game (date_start, date_finished, id_header, game_lenght) values (?,?,?,?)"; 
    pst=con.prepareStatement(sql); 
    pst.setString(1, jTextField2.getText()); 
    pst.setString(2, jTextField3.getText()); 
    pst.setString(3, jTextField1.getText()); 
    pst.setString(4, ?????????); 
    pst.execute(); 

    JOptionPane.showMessageDialog(null, "Игра завершена, до новых встреч " +jLabel1.getText()); 

    } 

,但我想在列插入game_lenght之間的時間date_finished和date_start(以分鐘爲單位)。我該怎麼做?也許通過使用觸發器?謝謝。

回答

0

首先,如果您的問題是關於SQL,您不需要在表中存儲遊戲長度。

你應該總是能夠來計算的話,當你檢索與SQL查詢的日期:如果你要計算的數據庫之外的遊戲長度

SELECT t.*, TIME_TO_SEC(TIMEDIFF(date_start , date_finished))/60 as game_lenght 
FROM myTable t 

,那麼你就需要改變標籤。