gpt4 book ai didi

java - 如何将 "hh:mm:ss"转换为sql更新的间隔

转载 作者:行者123 更新时间:2023-12-01 16:51:47 24 4
gpt4 key购买 nike

我在sql中有一个表,其中必须是每个员工一天工作的总时间,因为他们可以在工作时间离开办公室,所以我需要对他们在办公室的所有时间进行求和。

这是我的代码(我简化了它,因为它是断章取义的):


create table hours_per_day
(
id serial primary key,
day timestamp,
worked_hours timestamp,
id_employee integer references employees(id) ON DELETE SET NULL

);



然后我得到这个:


System.out.println("Date of leave: ");
String dat = br.readLine();

System.out.println("Time of leave: ");
String time = br.readLine();



String tiime = dat + " " + time;

SimpleDateFormat format=new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Date date=format.parse(tiime);
mainentry.setCheckOut(new java.sql.Timestamp(date.getTime()));


WorkedHoursPerDay odpr = new WorkedHoursPerDay();
SimpleDateFormat formatt=new SimpleDateFormat("dd/MM/yyyy");
Date dateee=formatt.parse(dat);
odpr.setDay(new java.sql.Timestamp(dateee.getTime()));

long dif = mainentry.getCheckOut().getTime() - z.getCheckIn().getTime();

String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(dif),
TimeUnit.MILLISECONDS.toMinutes(dif) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(dif)),
TimeUnit.MILLISECONDS.toSeconds(dif) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(dif)));

String nullls = "00:00:00";

String beg = dat + " " + nullls;

SimpleDateFormat form=new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Date dattee=form.parse(beg);
odpr.setWorkedHours(new java.sql.Timestamp(dattee.getTime()));

odpr.insert();
odpr.update();


这是我的代码:


public void update() throws SQLException {
if (idEmployee== null) {
throw new IllegalStateException("id employee does not exist");
}

try (PreparedStatement s = DbContext.getConnection().prepareStatement("UPDATE hours_per_day SET worked_hours = worked_hours + ? WHERE id_employee = ? AND day = ?")) {

s.setTimestamp(1, howManyHoursWorked)
s.setInt(2, idEmployee);
s.setTimestamp(3, day);



s.executeUpdate();
}
}

但这就是结果:

错误:类型间隔的输入语法无效:“2019-01-01 04:00:00+01”

我不知道如何将这些工作时间添加到数据库中现有的时间中。也许我应该将字符串 time1 更改为间隔,但我不知道该怎么做。

最佳答案

如果是SQL,这里是获取时间差的方法

declare @st1 datetime = '01/01/2019 00:00:00',  @st2 datetime = '01/01/2019 04:00:00'

Declare @TimeInOffice int
Select @TimeInOffice = DateDiff(hh,@st1, @st2)
Select @TimeInOffice

请查看以下内容 hrs difference in Java.

关于java - 如何将 "hh:mm:ss"转换为sql更新的间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61669976/

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