文档章节

关于datepart计算weekday时多一天引起的问题及解决方法

猪刚烈
 猪刚烈
发布于 2014/10/12 11:40
字数 383
阅读 18
收藏 0
使用datepart计算weekday时我们会发现默认sql server返回的数字总是比实际的数值大一,如:2012-12-18是星期二,使用
select datepart(WEEKDAY,'2012-12-18');
得到值总是3,这是由于sql server默认星期天作为一周的第一天引起的。有人简单指出在计算传值时只需要把当前日期减去一天就可以避免这个问题了,虽然这种方法很简单却有潜在的问题,例如:当我们计算某一天属于某一年的第几周时,会使用形如:
select datepart(week,@Day);
的方式进行查询,此时依然会存在以周日作为一周开始而引起的问题,如2013-1-6是2013年的第一个周的周日,使用
select datepart(WEEK,'2013-1-6');
计算得到的却是2,如果在日期上减去一天又会导致另一个问题,如2013-1-1分明是2013年的第一周,如果减去一天得到就成了53,因为减去一天就回到了2012-12-31,这一天属于2012年的第53周。
正确的处理方式还是要设置sql server以哪一天作为一周开始,这个设置是通过修改全局变量DATEFIRST来实现的,如果想要以周一作为一周的开始,可以通过:
set datefirst 1;
来实现,更详细的解释可以参考:
http://technet.microsoft.com/zh-cn/interopmigration/aa259210

本文转载自:http://blog.csdn.net/bluishglc/article/details/8315443

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
私信 提问
SQL获取每月最后一天记录

SQL获取每月最后一天记录 DECLARE@dt datetime SET@dt =GETDATE() DECLARE@number int SET@number =3 --1.指定日期该年的第一天或最后一天 --A. 年的第一天 SELECTCONVERT(char(5),@dt ,120...

开源中国首席老王
2015/12/09
268
0
sqlserver datetime转换成带格式的字符串

sqlserver datetime转换成带格式的字符串,sqlserver datetime转换成固定格式的字符串,sqlserver datetime转换成字符串,sqlserver 时间类型与字符串之间的转换 我们在项目开发中经常用到sqlse...

憨豆1号
2013/03/06
0
0
Sql 中常用日期转换Convert(Datetime)

CONVERT(data_type,expression[,style]) convert(varchar(10),字段名,转换格式) 说明: 此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar) 相互转换的...

stephen_wu
2016/08/22
16
0
sql中时间日期操作(时间日期函数,时间日期格式,时间日期转换参数,时间日期比较,时间日期计算)

sql中对时间进行操作,需要掌握四个时间函数:dateadd,datediff,datepart,datename。 dateadd是在指定日期上相加或相减一个时间。 如:在指定日期添加3天select dateadd(day,3,'2010-05-06'),...

huyuner1
06/26
0
0
iOS开发 关于时间问题的处理

对时间的处理一般都会用到NSDate类和NSCalendar类两个类。 获取当前的时间是:NSDate nowDate = [NSDate date];获取具体的年月日就是对nowDate的处理;一般要用到NSCalendar类,首先是对NSC...

Alan_JL
2016/02/26
5
0

没有更多内容

加载失败,请刷新页面

加载更多

Ubuntu16.04下安装docker

[TOC] 本文开发环境为Ubuntu 16.04 LTS 64位系统,通过apt的docker官方源安装最新的Docker CE(Community Edition),即Docker社区版,是开发人员和小型团队的理想选择。 1. 开始安装 1.1 由于...

豫华商
42分钟前
5
0
使用XShell工具密钥认证登录Linux系统

如果你是一名Linux运维,那么Linux服务器的系统安全问题,可能是你要考虑的,而系统登录方式有两种,密码和密钥。哪一种更加安全呢? 无疑是后者! 这里我为大家分享用Xshell利器使用密钥的方...

dragon_tech
54分钟前
3
0
day178-2018-12-15-英语流利阅读-待学习

“真蛛奶茶”了解一下?蜘蛛也会产奶了 Lala 2018-12-15 1.今日导读 “蛋白质含量是牛奶的 4 倍,并有着更低的脂肪和含糖量”,听起来诱人又美味的并不是羊奶或豆奶,而是你可能打死都想不到...

飞鱼说编程
59分钟前
10
0
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents

场景重现 npm install --verbose 安装依赖的时,出现如下警告 强迫症患者表示不能接受 npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules\fsevents):npm WARN......

taadis
今天
2
0
OSChina 周六乱弹 —— 你一口我一口多咬一口是小狗

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @达尔文 :分享Roy Orbison的单曲《She's a Mystery to Me》 《She's a Mystery to Me》- Roy Orbison 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
今天
398
6

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部