我正在尝试清理一个丑陋但可以完成工作的查询。我想知道是否可以在 SELECT 语句中创建一个临时变量。我已经谷歌搜索并没有找到任何帮助。基本上我对查询所做的是将 DateTime 字段与当前时间进行比较,以查看日期是过去还是将来。也许我把一些简单的事情复杂化了,但是从互联网上环顾四周,这似乎是比较 DateTime 字段的唯一方法。
我希望能够重用查询的以下重复部分,因为我必须将它们列出两次才能获得下限值:
(CAST(DATEADD(n, bq.markupDelay, sr.lastviewed) AS FLOAT)
Run Code Online (Sandbox Code Playgroud)
和
(CAST(GETDATE() AS FLOAT)
Run Code Online (Sandbox Code Playgroud)
这是查询:
SELECT
bq.quoteID
, bq.unsentNumber
, bq.sendSubsequent
, bq.unsentDelay
, sr.contractorID
, CASE
WHEN (CAST(DATEADD(n, bq.markupDelay, sr.lastviewed) AS FLOAT) - FLOOR(CAST(DATEADD(n, bq.markupDelay, sr.lastviewed) AS FLOAT))) <= (CAST(GETDATE() AS FLOAT) - FLOOR(CAST(GETDATE() AS FLOAT)))
THEN 1
ELSE 0
END AS 'Add Bid'
, DATEADD(n, bq.markupDelay, sr.lastviewed) AS 'Send Time'
, GETDATE() AS 'Time Now'
, e.email
, e.name
FROM tblCustomerBidQueue bq
INNER JOIN tblServiceRecords …Run Code Online (Sandbox Code Playgroud)