gpt4 book ai didi

java - 如何使用java在SQL中查找两个时间值的差异?

转载 作者:行者123 更新时间:2023-12-01 12:07:19 25 4
gpt4 key购买 nike

我有一个java类,它给我time_intime_outTime_intime_out也是我的sql数据库中的表。我想找到可以按 time_out - time_in 计算的工作时间。 time_in 和 time_out 是时间格式 (hh:mm:ss)。如何找到工作时间?由于数据变量类型(我使用字符串),我尝试的代码不起作用。但无论如何我都无法使用 int 数据类型来做到这一点。这是我的类(class)。我没有设置 time_out 以节省空间。假设还有另一种方法可以检索 time_out,就像 time_in 一样。

import java.sql.*;


public class blah {

//------MONDAY-------
private static String timeInQMonday;
private static String timeInMonday;


public static void main(String[] args) {

loadTimeInMonday();
loadWorkHour();

}

public static void loadWorkHour(){
//workHour = time_out - time_in;
}

public static void loadTimeInMonday(){
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://SERVER2\\WASPDBEXPRESS;databaseName=WaspTime;integratedSecurity=true;";
Connection conn = DriverManager.getConnection(url);
System.out.println("Connection established!");

//Creating the statement
Statement stmt = conn.createStatement();
timeInQMonday = "SELECT CONVERT(VARCHAR(8), time_in, 108) AS time_in FROM [WaspTime].[dbo].[job_punch_card] WHERE emp_key=55 and punch_day= DATEADD(week, DATEDIFF(day, 0, getdate())/7, 0)";

try {
stmt = conn.createStatement();
ResultSet rsTimeIn = stmt.executeQuery(timeInQMonday);
//-------DISPLAY THE RESULT-----

while (rsTimeIn.next()) {
timeInMonday = rsTimeIn.getString("time_in");

if(timeInMonday==null){
System.out.println("No Data");
}else{
System.out.println("clock in: " + timeInMonday);
}
}

///////////////////////////////

} catch (SQLException e ) {
System.out.println(e);
} finally {
if (stmt != null) { stmt.close(); }
}

} catch (Exception e) {
System.out.println("Connection Failed");
}
}
}

最佳答案

我不确定我是否完全理解问题的详细信息,但如果我是正确的,您需要工作时数。您可以使用以下代码来实现此目的:

import java.util.*;import java.lang.*;import java.io.*;import java.text.SimpleDateFormat;import java.util.concurrent.TimeUnit;class HoursWorked {    public static void main (String[] args) throws java.lang.Exception {        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:SS");        Date timeIn = sdf.parse("01:00:00");        Date timeOut = sdf.parse("09:30:00");        long workHourInMillis = timeOut.getTime() - timeIn.getTime();        System.out.println("Hours worked: " + TimeUnit.MILLISECONDS.toHours(workHourInMillis));    }}

关于java - 如何使用java在SQL中查找两个时间值的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27491076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com