如何 return 日期列中特定日期名称的数据

How to return data for specific day names from date column

假设我有一个 SQL 服务器 table 如下所示,名为 dbo.tblNAV:

Ticker   ISIN          Date         Price
------------------------------------------
TSLA     US88160R1014  2021-08-09   45454
TSLA     US88160R1014  2021-08-10   45455
TSLA     US88160R1014  2021-08-11   45456
TSLA     US88160R1014  2021-08-12   45457
TSLA     US88160R1014  2021-08-13   45458
TSLA     US88160R1014  2021-08-16   45459

我怎样才能select只有周一和周五的数据?

我是 SQL 服务器的初学者,几乎不知道如何处理这个问题。非常感谢您的帮助。

我正在使用 Microsoft SQL Server Management Studio。

您可以使用名为 DATENAME(interval, date) 的东西 -> 关于 here 的更多信息,这将 return 日期名称。 函数在某些数据库中可能被称为 DAYNAME,例如 here

I.E.

SELECT DAYNAME ('2011-05-30') "dayname" FROM DUMMY;

将 return“星期一”

SQL 服务器无法在所有系统上轻松完成此操作。问题是:

  • datename() returns 星期几,但语言取决于当地文化设置。
  • datepart() returns 星期几,但一周的开始取决于本地设置。

如果您使用英语工作,那么您可以使用datename():

where datename(weekday, n.date) in ('Monday', 'Friday')

如果您需要一种独立于文化的方法,那么您可以使用 format() 和文化参数:

where format(n.date, 'ddd', 'us-en') in ('Mon', 'Fri')