【问题标题】:Use DateDiff function to match two columns使用 DateDiff 函数匹配两列
【发布时间】:2015-06-25 09:48:38
【问题描述】:

我有以下检查:

'20'+convert(char,tc.TransactionDateStamp,12) = pr.DateOut
AND substring(tc.TransactionTimeStamp,1,2) + substring(tc.TransactionTimeStamp,4,2) + substring(tc.TransactionTimeStamp,7,2) = pr.TimeOut

这可行,但如果tc.TransactionTimeStamp 中的时间与pr.TimeOut 相差五秒,则它不匹配。我需要进行检查,即使时间相差 30 秒,也可以让这两者匹配。

【问题讨论】:

  • 能否提供tc.TransactionDateStamp 内容的样本和tc.TransactionTimeStamp 内容的样本?
  • 您真的使用字符串存储日期/时间值吗?还是您在日期/时间值上不恰当地使用字符串函数?

标签: sql-server tsql datediff


【解决方案1】:

这是?

'20'+convert(char,tc.TransactionDateStamp,12) = pr.DateOut 
AND substring(tc.TransactionTimeStamp,1,2)+substring
(tc.TransactionTimeStamp,4,2)+substring
(tc.TransactionTimeStamp,7,2) between pr.TimeOut and pr.TimeOut+30

【讨论】:

  • 好的,但是现在已经看到一个问题,如果 TransactionTimestamp 中的时间高于 TimeOut 中的时间,那么这不起作用,因为它仅在 Timeout 相同或最多 30 秒时才有效然后是事务时间戳
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多