比较两个字符串的时间戳超过五分钟怎么比较呢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比较两个字符串的时间戳超过五分钟怎么比较呢相关的知识,希望对你有一定的参考价值。

如果切割的字符串有三个,先判断时间戳是不是在5分钟内,是则判断第三个字符串的值与第二个字符串的值的md5取值是否相等,相等则返回第2个字符串,不等则返回md5error,输出到文件splitstrout.log,不是在5分钟内返回timesamperr,请问怎么写shell脚本呀

比较timestamp1和timestamp2很简单
1
2
3
var timestamp1 = new Date('2014-11-5 21:50:00'), timestamp2 = new Date();

var d = timestamp1.getTime() - timestamp2.getTime();

如果相减大于0,则1比2时间大(晚)
如果相减小于0,则1比2时间小(早)

相减的值除以1000就是2个时间相差的秒数

你的代码出错,可能的原因是timestamp1的date参数没写对
我觉得应该是new Date('2014-11-5 21:50:00');
参数是字符串

timestamp2不需要用valueof吧,我没测试过,反正保证timestamp1和timestamp2是时间类型就行
参考技术A 范例
比较timestamp1和timestamp2很简单
1
2
3
var timestamp1 = new Date('2014-11-5 21:50:00'), timestamp2 = new Date();

var d = timestamp1.getTime() - timestamp2.getTime();

如果相减大于0,则1比2时间大(晚)
如果相减小于0,则1比2时间小(早)

相减的值除以1000就是2个时间相差的秒数

你的代码出错,可能的原因是timestamp1的date参数没写对
我觉得应该是new Date('2014-11-5 21:50:00');
参数是字符串

timestamp2不需要用valueof吧,我没测试过,反正保证timestamp1和timestamp2是时间类型就行

没有时间戳的 HQL 中的日期比较

【中文标题】没有时间戳的 HQL 中的日期比较【英文标题】:Date Compare in HQL without timestamp 【发布时间】:2014-10-30 01:46:57 【问题描述】:

我必须在 hibernate hql 查询中比较两个日期。 我在我的 java bean 中使用 java.util.Date 并在 mysql 数据库中使用时间戳作为数据类型。

select t from Task t where t.modifiedDate > t.endDate;

以上查询将时间与日期进行比较。我应该怎么做才能在没有时间的情况下比较上述查询中的日期。

【问题讨论】:

【参考方案1】:

date() 函数的建议解决方案似乎不是纯 SQL,对我不起作用(使用 SQL Server)。最初的解决方案(分别比较日、月和年)是朝着正确方向迈出的一步,但不能以这种方式完成,例如,对于未来的日期,如果月更大,等等。但是,以下 SQL 应该可以工作:

( year(t.endDate) > year(t.startDate) )
or 
( year(t.endDate) = year(t.startDate) 
  and 
  month(t.endDate) > month(t.startDate) )
or 
( year(t.endDate) = year(t.startDate) 
  and
  month(t.endDate) = month(t.startDate) 
  and
  day(t.endDate) > day(t.startDate) )

【讨论】:

【参考方案2】:

查看 Hibernate 文档了解可用的日期函数

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html

在第 14.10 节中注意这一行

second(...), minute(...), hour(...), day(...), month(...), and year(...)

所以这应该可以工作

... where year(t.endDate) > year(t.startDate) 
    and month(t.endDate) > month(t.startDate)
    and day(t.endDate) > day(t.startDate)

报告为满足问题的解决方案是

 ... where DATE(t.endDate) > (t.startDate)

【讨论】:

这给了我分别与月份和年份的比较......但我必须像 06-09-2014 这样的时间比较完整日期 b> 它适用于以下更改 where DATE(t.endDate) > (t.startDate) 很高兴它对你有用。我正在使用您的解决方案编辑答案,而不是将解决方案留在 cmets 中。这就是 *** 的做事方式。 如果我们需要将日期作为名称参数而不是 t.startDate,那么查询将类似于 Date(t.endDate) @carbontax 是否允许在 hql 查询中使用“where DATE(t.endDate) > DATE(:currentDate)”。即使用带输入参数的 DATE()??

以上是关于比较两个字符串的时间戳超过五分钟怎么比较呢的主要内容,如果未能解决你的问题,请参考以下文章

hive时间段为五分钟的统计

CDateTimeCtrl类型的日期如何比较大小

js时间比较问题 如何只比较两个时和分的大小?

sql语句关于时间与时间戳

SQL 字符串类型的时间怎么比较大小

计算两个时间之间的差值