【问题标题】:How can I query the weekly records?如何查询周记录?
【发布时间】:2021-02-23 12:03:56
【问题描述】:

我想查看发票日期仅为本周(周一至周日)的记录。当我为接下来的几周运行查询时,我想设置一个限制,我只能看到那一周的记录。提前感谢您的帮助。

Select ‘Amount’=InvoiceAmount,‘date’=InvoiceDate from Invoice where InvoiceDate>=.....

【问题讨论】:

  • 请提供有关您的数据库/表结构、一些可消耗的示例数据以及您迄今为止尝试过的信息。

标签: sql sql-server


【解决方案1】:
DECLARE @Firstdayofcurrentweek DATETIME, @Lastdayofcurrentweek DATETIME
-- First Day of Current Week
SELECT @Firstdayofcurrentweek = DATEADD(wk, DATEDIFF(wk, 0, GETDATE()), 0) 
-- Last Day of Current Week
SELECT @Lastdayofcurrentweek = DATEADD(wk, DATEDIFF(wk, 0, GETDATE()), 6) 

您的查询:

SELECT [Amount] = InvoiceAmount,
       [date] = InvoiceDate 
FROM Invoice 
WHERE InvoiceDate BETWEEN @Firstdayofcurrentweek AND @Lastdayofcurrentweek

【讨论】:

  • 不要在代码中使用“智能”引号;他们不工作。
  • 另外,用于别名的 {literal string} = expression 已被弃用(至少因为2016)并且应该被使用。但是,我还建议完全避免列别名的文字字符串,因为它可能会很混乱。而是在需要时使用 T-SQL 或 ANSI-SQL 分隔标识符(括号 ([]) 和双引号 (") 分别)。
猜你喜欢
  • 2019-03-18
  • 2010-10-17
  • 1970-01-01
  • 1970-01-01
  • 2016-10-31
  • 2021-05-06
  • 2018-12-30
  • 2022-09-23
  • 1970-01-01
相关资源
最近更新 更多