得到时间差:
select (unix_timestamp(now())-unix_timestamp(stime))/60 from table_name where whew_condition
mysql>select * from timeminus
+----+---------------------+
| id | stime |
+----+---------------------+
| 1 | 2011-09-21 09:30:00 |
| 2 | 2011-09-21 11:30:00 |
| 3 | 2011-09-20 00:00:00 |
+----+---------------------+
3 rows in set (0.02 sec)
# 计算id=1与id=2的时间差(分钟)
mysql>select (unix_timestamp(a.stime)-unix_timestamp(b.stime))/60 from (select
* from timeminus where id=2) a inner join (select * from timeminus where id=1) b
+------------------------------------------------------+
| (unix_timestamp(a.stime)-unix_timestamp(b.stime))/60 |
+------------------------------------------------------+
| 120.0000 |
+------------------------------------------------------+
1 row in set (0.00 sec)
结论:一个标准的SQL查询语句。
前提:假设起始时间:start_at,结束时间:end_at。
现在根据不同的字段类型说明如何写。
1 - INT类型,存储时间戳
SELECT * FROM table_name WHERE ( end_at - start_at ) >3600
2 - DATETIME类型
假如 start_at 格式类似于 “2020-10-01 12:13:14”。那么使用函数进行求差值:
SELECT * FROM table_name WHERE TIMESTAMPDIFF(SECOND, start_at, end_at) >3600
以上。
不好做吧,datediff函数只能返回一行,你要想用就得做个循环什么的。还不如直接用sql语句一下查出来。SELECT * FROM table
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <=7
你确定 (r)这个是什么意思啊 你输出你的sql语句在数据库中直接执行下看看报什么错 应该是你的s.getString(uploadtime)这里错了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)