在mysql中添加两个或多个时间数据值

时间:2019-02-21 20:46:54

标签: mysql vb.net time mysql-workbench

我目前正在使用vb.net和mysql数据库进行项目开发,我只想问一下我如何能够在格式为hh:mm:sec的mysql工作台中的一列中总结2个或更多个时间条目。

例如,我将这些数据存储在数据库中:

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;

public class LayoutManagerTest {

    public static void main( String[] args ) {

        JFrame f1 = new JFrame( "BorderLayout" );
        f1.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

        f1.add( new JButton( "btn1" ) );
        f1.add( new JButton( "btn2" ) );
        f1.add( new JButton( "btn3" ) );
        f1.add( new JButton( "btn4" ) );
        f1.add( new JButton( "btn5" ) );
        f1.setSize( 500, 200 );
        f1.setLocationRelativeTo( null );



        JFrame f2 = new JFrame( "BorderLayout with regions" );
        f2.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

        f2.add( new JButton( "btn1" ), BorderLayout.NORTH );
        f2.add( new JButton( "btn2" ), BorderLayout.SOUTH );
        f2.add( new JButton( "btn3" ), BorderLayout.WEST );
        f2.add( new JButton( "btn4" ), BorderLayout.EAST );
        f2.add( new JButton( "btn5" ), BorderLayout.CENTER );
        f2.setSize( 500, 200 );
        f2.setLocationRelativeTo( null );



        JFrame f3 = new JFrame( "FlowLayout" );
        f3.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        f3.setLayout( new FlowLayout() );

        f3.add( new JButton( "btn1" ) );
        f3.add( new JButton( "btn2" ) );
        f3.add( new JButton( "btn3" ) );
        f3.add( new JButton( "btn4" ) );
        f3.add( new JButton( "btn5" ) );
        f3.setSize( 500, 200 );
        f3.setLocationRelativeTo( null );



        f1.setVisible( true );
        f2.setVisible( true );
        f3.setVisible( true );

    }

}

样品表

总数应为 10:05:02

我尝试使用此查询求和整个列数据,但我认为我做错了。

|03:45:00|
|03:12:00|
|03:08:57|

1 个答案:

答案 0 :(得分:1)

您无法使用SUM彼此直接添加时间值。相反,您需要将其转换为可以求和(数字)的值,例如使用TIME_TO_SEC。然后,您可以将总和转换回时间格式(使用SEC_TO_TIMETIME_FORMAT)进行显示:

SELECT TIME_FORMAT(SEC_TO_TIME(SUM(TIME_TO_SEC(Hours_worked))), '%H:%i:%s') AS Total
FROM db_project
WHERE Date_of_entry BETWEEN '2019-02-04' AND '2019-02-15'

输出:

10:06:02

Demo on dbfiddle