如何使用SQL BETWEEN Clause和GETDATE函数

时间:2014-06-18 12:36:15

标签: sql sql-server tsql

SELECT j.JobNo, j.JobDescription
FROM Job j  
JOIN Job_Nav n ON j.JobNo = n.JobNo
WHERE n.Blocked = 0 
AND n.[Starting Date] < GETDATE() AND n.[Ending Date] > GETDATE()    

我想要更改 AND n。[开始日期]&lt; GETDATE()和n。[结束日期]&gt; GETDATE()进入BETWEEN子句,任何人都可以告诉我如何在上面的表达式中使用在Clause 之间。 致谢

5 个答案:

答案 0 :(得分:1)

SELECT j.JobNo, j.JobDescription FROM Job j
JOIN Job_Nav n ON j.JobNo = n.JobNo WHERE n.Blocked = 0 AND GETDATE() Between n.[Starting Date] AND n.[Ending Date]

答案 1 :(得分:1)

SELECT j.JobNo, j.JobDescription
FROM Job j  
JOIN Job_Nav n ON j.JobNo = n.JobNo
WHERE n.Blocked = 0 
AND getdate() between n.[Starting Date] AND n.[Ending Date] 

答案 2 :(得分:1)

getdate() between n.[Starting Date] AND n.[Ending Date]

相当于

getdate() >= n.[Starting Date] and getdate() <= n.[Ending Date]

(请注意,它使用>=<=代替><

我假设你想使用between来使你的代码更紧凑和可读,但你编写的代码不是这种替换的候选者。

答案 3 :(得分:1)

不确定这对您是否重要,但GETDATE()可能会返回误导性结果,因为该函数包含时间。

答案 4 :(得分:1)

你不能介于两者之间(&gt; =&lt; =)

BETWEEN (Transact-SQL)

  

要指定独占范围,请使用大于(&gt;)和小于   运营商(&lt;)。

如果你需要专属的东西是干净的 我认为单独的行更容易阅读

AND n.[Starting Date] < GETDATE() 
AND n.[Ending Date]   > GETDATE()