datename sql函数未显示正确的日期

时间:2015-09-07 12:31:16

标签: sql sql-server sql-server-2008 tsql sql-server-2012

我上网后看到2011年11月3日是星期四,2011年11月4日是星期五。我使用了函数

SELECT datename (dw, 04-11-2011)在我的服务器上,它表示周六而不是周五。如何将其设置为正确显示?或者我错过了什么?

修改: 谢谢大家的投入。但是,大多数人都指出了我使用的格式,而不是它没有正确设置的事实。有人发布了这个链接(并认为删除了他的评论):https://msdn.microsoft.com/en-us/library/ms181598.aspx

所以,我使用了set datefirst 1并且在11月4日使用了select datename(dw, '2011-11-04')

2 个答案:

答案 0 :(得分:8)

使用ISO标准日期格式,以便了解您的日期。之一:

select datename(dw, '2011-04-11') 

select datename(dw, '2011-11-04') 

(或者,因为上述格式 受制于一个可能被误解的国际化设置,您可以省略连字符,使它们明确地以YYYYMMDD格式显示。)

另外,将日期常量括在单引号中。

答案 1 :(得分:1)

1使用单个双倍日期值

2在SQL Server中使用明确的日期格式YYYYMMDD或YYYY-MM-DDTHH:MM:SS

select datename(weekday, '20110411') as day_name