我有一个包含表的MySQL数据库datetime
。
但是,我找不到在Java中将其作为Java中某种Time
对象返回的方法。
我可以打电话给resultset.getString("Date")
它,它会返回datetime
,但这并不好,因为没有办法比较字符串上的日期等。
我也可以打电话resultset.getDate("Date")
,但这根本不返回时间。
您需要使用Thomas的注释中建议的getTime()或getTimestamp()方法。举个例子…
说出要查询的表格,如下所示: rs = stmt.executeQuery("select timeCol, dateCol, dateTimeCol from dateTimeTable");
您可以这样做:
java.sql.Time dbSqlTime = rs.getTime(1);
java.sql.Date dbSqlDate = rs.getDate(2);
java.sql.Timestamp dbSqlTimestamp = rs.getTimestamp(3);
如果要使用Java日期对象:
java.util.Date dbSqlTimeConverted = new java.util.Date(dbSqlTime.getTime());
java.util.Date dbSqlDateConverted = new java.util.Date(dbSqlDate.getTime());
我还要检查一下JodaTime,以便在Java中使用Dates,使生活变得更加简单。
最后,值得注意的是,MySQL中的Timestamp和DateTime之间存在一些差异。即,时间戳具有时区,并且服务器将以服务器的本地时间返回查询的时间戳(这可能很烦人)。我的建议是使用DateTime并始终将日期/时间保持在相同的时区(即UTC)。参见http://dev.mysql.com/doc/refman/5.0/en/datetime.html
问题内容: 表格示例: 所需的输出(不是确切的格式或上市顺序),每台计算机上每个应用程序的最新安装: 我的SQL语句: 这给了我: 并不是 如我所料。 如果我 仅 选择MAX(date),而没有其他选择,则MAX(date)有效。但是,那时我没有任何数据可以使用(仅是最新日期)。 我不是SQL忍者,所以我很快就会因此而挠头。 问题答案: 尝试这样: 内部查询是为您获取每对计算机和应用程序的max(
问题内容: 假设我有一个时间戳值的DataFrame : 我想创建一个新列。我可以通过编写一个简短的函数并使用它来迭代地创建它来创建它: 然后,我将看到以下结果: 什么我 想 实现的是这样一些较短的转变(我知道是错误的,但在精神得到): 显然,该列是类型的,因此没有这些属性,但是似乎有一种使用矩阵运算的简单方法。 有更直接的方法吗? 问题答案: 假设时间戳是数据帧的索引,则可以执行以下操作: 如果
问题内容: 我有一个包含datetime列的表。我希望无论何时都返回给定日期的所有记录。换句话说,如果我的表仅包含以下4条记录,那么如果我限制为2012-12-25,则仅返回第二和第三条记录。 问题答案: 永远不要 使用像这样的选择器-它是性能杀手: 它将为所有不匹配的行(包括那些行)计算 它将无法使用索引进行查询 使用起来更快 因为这将允许索引使用而无需计算。 编辑 正如Used_By_Alre
问题内容: 有谁知道如何将JS dateTime转换为MySQL datetime?还有一种方法可以向JS日期时间添加特定的分钟数,然后将其传递给MySQL日期时间? 问题答案: 尽管JS确实拥有足够的基本工具来执行此操作,但它相当笨拙。
问题内容: 我无法找出(谷歌,阅读mysql参考手册)如何 在几秒钟内在 MySQL中获取 DATETIME的 值。 我不是要从日期时间中提取秒,而是将其转换为秒。 问题答案: 如果要使两个DATETIME值之间存在差异,请使用 : TIMESTAMPDIFF(单位,datetime_expr1,datetime_expr2) 返回,其中和是日期或日期时间表达式。一个表达式可以是日期,另一个可以是
问题内容: 是否可以使用NOW()将默认时间添加为10分钟? 我已经尝试过类似的方法: 但是,它不起作用。 问题答案: 我不认为你可以做到这一点。 在MySQL的文件指出: 数据类型规范中的DEFAULT value子句指示列的默认值。除一个例外,默认值必须为常数;否则为0。它不能是函数或表达式。例如,这意味着您不能将日期列的默认值设置为诸如NOW()或CURRENT_DATE之类的函数的值。唯一