6

使用 SQL Server 2005

表格1

Date

19-12-2009
20-12-2010
.....

日期列数据类型为DATETIME.

预期产出

Monday
Tuesday

如何查询获取日期...

4

5 回答 5

18

您可以使用该DATENAME功能。

SELECT DATENAME(WEEKDAY,[Date])
FROM Table1
于 2010-12-20T18:20:43.670 回答
10

正如@Lamak 建议的那样,如果您使用的是 SQL Server 2005 或更高版本,则可以使用 DATENAME函数:

SELECT DATENAME(dw, DateField) FROM Table

在早期版本中,您可以获得的最接近的日期是DATEPART 函数,其dw作为间隔,但您需要一个 CASE 将返回的数字转换为日期名称,如此处所示

SELECT CASE DATEPART(dw, DateField)
       WHEN 1 THEN 'Sunday'
       WHEN 2 THEN 'Monday'
       WHEN 3 THEN 'Tuesday'
       WHEN 4 THEN 'Wednesday'
       WHEN 5 THEN 'Thursday'
       WHEN 6 THEN 'Friday'
       WHEN 7 THEN 'Saturday'
       END AS DayOfWeek
FROM Table

另请注意 MSDN 文档中有关这些日期函数的注释,以获取有关指定将一周中的哪一天视为第一天的信息(取决于DATEFORMAT您的 SQL 环境的设置)。

于 2010-12-20T18:26:55.387 回答
1

这是DateName的参考,它将为您提供帮助

http://msdn.microsoft.com/en-us/library/ms174395.aspx

如果您想要一个数字参考,例如 Sunday = 1、Saturday = 7,请使用DatePart

http://msdn.microsoft.com/en-us/library/ms174420.aspx

这就是你想要的

DateName(dw, [Date])
于 2010-12-20T18:22:20.570 回答
0

我想建议在获得工作日之前设置语言

SET LANGUAGE 'Italian'
SELECT DATENAME(WEEKDAY,GETDATE())
于 2014-01-23T11:22:13.223 回答
0
select name from table where weekday(column_name = 'monday');

它打印出星期一出生的人,并显示他们的名字

于 2016-11-12T12:13:25.667 回答