SQL Server获取星期几

时间:2021-08-15 04:26:01

上一周在解决一个Bug的时候,需要在SQL Server获取星期几的需求,在网上搜索了下,发现一篇好的文章,特转载下!

今天是星期几,例子 1:

1 SET LANGUAGE N'English' --设置语言,这个很重要,会导致不同的返回结果
2
3 SELECT DATENAME(weekday,GETDATE())
4
5 --Result: Sunday

今天是星期几,例子 2:

1 SET LANGUAGE N'Simplified Chinese' --简体中文
2
3 SELECT DATENAME(weekday,GETDATE())
4
5 --result:星期日

今天是星期几,例子 3:

1 SET DATEFIRST 7 --设置星期天为一周的第一天
2
3 SELECT DATEPART(weekday,GETDATE())
4
5 --result: 1 --星期天

注意:这里用到了另外一个 SQL Server 日期函数 datepart()。“set datefirst 1” 表示设置一周的第一天为星期一。

在老美, 他们的一周的第一天习惯为星期天。我们可以通过 @@datefirst 函数 得到当前会话的 datefirst 设置值。

1 SELECT @@DATEFIRST
2
3 --result: 7

你可能有疑问:“set language” 后面的语言参数是从哪里得到的? 可以得到其他国家语言中的星期几吗?当然是可以的了, 请看下面:

SELECT alias,* FROM [master]..syslanguages  --alias 别名

如果我想得到韩语中的星期几,可以这样:

1 SET LANGUAGE N'Korean'
2 SELECT DATENAME(weekday,GETDATE())

SQL Server 中的日期函数:datename() 的详细用法,请参看 SQL Server 帮助文档。

本文链接:http://www.sqlstudy.com/sql_article.php?id=2008071601 (感谢作者的辛勤劳动,Thanks!)