【问题标题】:Mysql timestamp. How to handle in javaMysql 时间戳。如何在java中处理
【发布时间】:2012-02-17 13:38:02
【问题描述】:

我将尝试解释我想要做什么。 我有一个表,我在其中存储用户进入工作的时间,并在用户离开工作时更新这一行。字段是 timeIn 和 timeOut。 在存储 timeOut 之前,我想显示用户到目前为止工作了多少小时。所以我想我必须检索 timeIn 并计算与系统实际小时的差异。但我不知道如何只检索表的一个字段。我认为我必须创建一个对象时间(例如)并获取 timeIn 以及其他参数,然后计算差异。但我不知道我是否正确以及如何做到这一点。

干杯

【问题讨论】:

  • 您不知道如何执行 SQL 查询?在使用任何数据库之前,您最好先学习 SQL。
  • 与标签 servlet 无关

标签: java mysql date time


【解决方案1】:

请看这里:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_timediff

这样,您也许可以直接从 MySQL 获得工作时间:

SELECT TIMEDIFF(NOW(), timeIn) AS hoursWorked
FROM yerTable
WHERE personIdOrWhatever...

您没有告诉我们 timeIn 是什么类型的字段。应该是日期时间。

【讨论】:

  • timeIn 和 timeOut 是时间戳。我不明白 AS 加班。 AS 是什么意思?
  • 另外一个问题是:我是否必须将结果存储在 resultSet 中?
  • AS 是一种命名字段的方法。它有助于解释您的代码在做什么。至于 ResultSet,这可能需要一些解释。这里有一个教程:docs.oracle.com/javase/tutorial/jdbc/basics 应该可以帮助您入门。
  • 因此,如果我进行这样的选择,我仍然必须存储在结果集对象中,对吧?但是我如何才能将结果作为字符串。我正在使用准备好的声明。因此,我必须指出我正在检索结果的列的名称,getString("hoursworked")?
  • 另一件事是,我已经尝试过这个查询,它返回 null;但是,当我将 now() 替换为 time_out 时,它可以工作。你知道为什么吗?
猜你喜欢
  • 2011-03-20
  • 2011-07-16
  • 1970-01-01
  • 2016-01-07
  • 2010-12-30
  • 2021-01-17
  • 1970-01-01
  • 2014-07-16
相关资源
最近更新 更多