Mysql 在两个日期时间之间插入时间

Mysql 在两个日期时间之间插入时间,mysql,sql,Mysql,Sql,我有一张桌子。游戏: 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_INCREM

我有一张桌子。游戏:

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_Length列中插入完成日期和开始日期之间的时间(以分钟为单位)。我怎么做?也许通过使用触发器?谢谢。

首先,如果您的问题是关于SQL,则不需要在表中存储游戏长度

当您使用SQL查询检索日期时,应始终能够计算它:

SELECT t.*, TIME_TO_SEC(TIMEDIFF(date_start , date_finished)) / 60 as game_lenght
FROM myTable t
如果要计算数据库之外的游戏长度,则需要更改标记