如何 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')
假设我有一个 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')