jsp中mysql时间函数计算时间差

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp中mysql时间函数计算时间差相关的知识,希望对你有一定的参考价值。

我要利用datediff函数在mysql数据库中中筛选出与当前日期相差7天内的所有记录,求高人给出jsp代码,并做点必要的解释。所用字段可任意起名。如真能帮本人解决问题,可多加分。谢谢!
String sql="select * from news where unix_timestamp(rs.getString(uploadtime)) between ('unix_timestamp(now())'-7*24*60*60) and ('unix_timestamp(now())'+7*24*60*60)";
rs=stmt.executeQuery(sql);这段代码哪里错了?

不好做吧,datediff函数只能返回一行,你要想用就得做个循环什么的。还不如直接用sql语句一下查出来。
SELECT * FROM table
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <=7 ;
你确定 (r)这个是什么意思啊 你输出你的sql语句在数据库中直接执行下看看报什么错 应该是你的s.getString(uploadtime)这里错了
参考技术A 在你的查询条件中加入:
where `creattime`>=date_sub(curdate(),interval 7 day)
注:creattime是你的表中记录产生的日期或时间,
参考技术B unix_timestamp

求高人介绍MySQL的datediff函数

要求用现在时间和数据库的值做比较,返回时间差。
jsp中的

参考技术A DATEDIFF(expr,expr2)
DATEDIFF() 返回起始时间 expr和结束时间expr2之间的天数。Expr和expr2 为日期或 date-and-time 表达式。计算中只用到这些值的日期部分。

mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');

-> 1

mysql> SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');

-> -31
================
当前日期用curdate() 来获取,
======================
不知道你说的时间是指日期还是真正的时间,再给你时间相减的函数.
=========
TIMEDIFF(expr,expr2)
TIMEDIFF() 返回起始时间 expr 和结束时间expr2 之间的时间。 expr 和expr2 为时间或 date-and-time 表达式,两个的类型必须一样。

mysql> SELECT TIMEDIFF('2000:01:01 00:00:00',

-> '2000:01:01 00:00:00.000001');

-> '-00:00:00.000001'

mysql> SELECT TIMEDIFF('1997-12-31 23:59:59.000001',

-> '1997-12-30 01:01:01.000002');

-> '46:58:57.999999'本回答被提问者采纳

以上是关于jsp中mysql时间函数计算时间差的主要内容,如果未能解决你的问题,请参考以下文章

如何使用mysql计算两个日期之间的时间差

mysql中计算两个时间的时间差,以分钟为单位。

求高人介绍MySQL的datediff函数

在 MySQL 中使用 timediff 函数计算 12 小时格式的时差

mysql计算时间差函数

在mysql查询中使用php time()函数计算两个日期之间的差异