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
如果要计算数据库之外的游戏长度,则需要更改标记