关于SQL Server星期问题的处理

来源:互联网 发布:淘宝类目优化 编辑:程序博客网 时间:2024/05/29 13:21

在中学的时候我们就知道,西方国家每周的第一天是周日,而在我们国家,通常认为一周的第一天是周一,这样在项目开发的过程中就会遇到类似的冲突,现在提供两种解决方法,供大家参考,如果有更好的方法,欢迎回帖讨论

由于在实际项目开发中,在存入星期几的时候,通常只存给定日期是一周的第几天(即阿拉伯数字),而不是存入“星期1”或者“Monday"

所以今天提供的方法只返回当前日期是本周的第几天,

当前是周五

SELECT DATEPART(weekday,GETDATE())   返回值是6

如果想要返回 5

方法一:

(DATEPART(WEEKDAY,GETDATE())+5)%7+1

方法二:

SET DATEFIRST 1 --设定每周的开始日期,该语句表示设定一周的第一天是“星期一"

SELECT DATEPART(weekday,GETDATE()) 

注意:

1、SET DATEFIRST num 中的num取值范围 1<=num<=7

2、SET DATEFIRST num的执行结果是修改了SQL Server默认的一周的开始时间,设定后一直生效至下一次修改设定,

建议:

如果确有上述类似需求,需要按照我们自己的习惯以周一为每周第一天,请根据项目的实际情况选择

个人意见:如果项目是定制的,即数据库只有一个(外加一个备份)建议用方法2,这样不用每次都计算

如果项目不是定制的,即有可能有多个客户及数据库,建议使用方法1,因为这样就不会由于忘记修改设定而导致数据对不上

**************************************************************新人一枚,如有不当之处,望多多指教,请勿吐脏***************************************************
原创粉丝点击