1.引出问题

SQL Server中默认将星期天做为一个星期的第一天,如果你查询以下语句:

select Datediff(week,'2010/12/12','2010/12/13')

2010/12/12为星期天,2010/12/13为星期一,在我们的眼里两天不是同一个星期则

查询的结果应为:1,但结果为0,因为Sql server默认星期天为第一天!

我们可以通过:

SET Datefirst 1

这样就将星期一设为一个星期的第一天。

select @@Datefirst

查看当前的第一天设置

详细可以看MSDN DateFirst

但设置DateFirst只对Datepart函数生效,DateDiff仍然会当做星期天为一个星期的第一天.

2.解决方案

-- 不是一周内
set DateFirst 1
select DateDiff(day,'2010/12/12','2010/12/13') as d
select DATEPART(dw, '2010/12/12') as a,DATEPART(dw, '2010/12/13') as b

d:1   a:7  b:1

--一周内
set DateFirst 1
select DateDiff(day,'2010/12/13','2010/12/14') as d
select DATEPART(dw, '2010/12/13') as a,DATEPART(dw, '2010/12/14') as b

d:1   a:1  b:2

通过上述的判断可得到判断两个日期是否为同一星期的条件为:d<7&&b>a(日期差小于7且一周内的星期序号差值为正数)

我们可以写一个函数:

注:函数中不能调用SET Datefirst 1


CREATE FUNCTION WeekEqualToNow(@dt datetime,@dt2 datetime)
RETURNS BIT
AS
BEGINIF(Datediff(day,@dt,@dt2)<7 andDatepart(dw,@dt2)>Datepart(dw,@dt)) RETURN 1;RETURN 0;
END

转载于:https://www.cnblogs.com/newmin/archive/2010/12/14/1905832.html

Sql Server中判断日志是否为一个星期相关推荐

  1. Sql Server中判断表或者数据库是否存在

    SQL Server中判断数据库是否存在: 法(一): select * From master.dbo.sysdatabases where name='数据库名' 法(二): if db_id(' ...

  2. SQL Server中事务日志自动增长对性能的影响

    SQL Server中事务日志自动增长对性能的影响 SQL Server中事务日志自动增长对性能的影响(上) SQL Server中事务日志自动增长对性能的影响(下) posted on 2011-0 ...

  3. 在SQL Server中判断一个作业是否正在运行

    select step_id,run_status,run_date As rundate --a.run_time, a.* from msdb.dbo.sysjobhistory a inner ...

  4. SQL Server中事务日志已满的原因以及解决办法

    错误描述:数据库的事务日志已满.若要查明无法重用日志中的空间的原因 ,请参阅sys.databases 中的 log_reuse_wait_desc 列 . 首先引入一下事务日志的概念(来自百度百科) ...

  5. 再谈SQL Server中日志的的作用

    简介 之前我已经写了一个关于SQL Server日志的简单系列文章.本篇文章会进一步挖掘日志背后的一些概念,原理以及作用.如果您没有看过我之前的文章,请参阅: 浅谈SQL Server中的事务日志(一 ...

  6. SQL Server中的SQL语句优化与效率问题

    很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解.比如: select * from table1 where name='zhan ...

  7. SQL Server中字符串处理函数

    SQL Server中截取字符串常用函数 截取字符串中的最后一个斜杠后的所有字符: SELECT A.PIC_URL, RIGHT(A.PIC_URL,(CHARINDEX('/',REVERSE(A ...

  8. SQL Server中的计算列概述

    In this article, we will explore computed columns in SQL Server and their configurations. 在本文中,我们将探讨 ...

  9. SQL Server 中深入理解GRANT、REVOKE 和 DENY 的区别

    在SQL Server数据库登陆账户.数据库用户权限管理中,经常会授予权限.回收权限,有时还会拒绝权限.GRANT.REVOKE是我们常用的,但有时会遇到使用DENY的情形.从英文单词的字面意思来看, ...

最新文章

  1. R假设检验之莫德中位数检验(Mood‘s Median Test)
  2. Neutron 网络基本概念
  3. lenovo L480 进入bios_重装系统重启后不引导,重装系统无法进入引导
  4. 深度学习核心技术精讲100篇(三十二)-网易实时数仓实战应用
  5. IOS开发之----远程推送通知
  6. 框架基础:深入理解Java注解类型(@Annotation)
  7. Java笔记-DH密钥交换
  8. 什么是死锁及死锁的必要条件和解决方法【转】
  9. java编写一个整钱换零_Java编写钱币转换为大写程序
  10. [前端]npm安装慢,换用淘宝的镜像
  11. Autoware(Architecture Proposal)
  12. spilt的用法小结
  13. 计算机休眠会断电吗,电脑「睡眠」和「休眠」原来有这么大区别,下次别用错了。...
  14. 简单了解消息中间件及ActiveMQ
  15. HTML3-视频图像的插入
  16. 神州租车,致力于提供更加便利的出行方式
  17. 美团脱颖而出的经验_使用条件格式使重要的Outlook邮件脱颖而出
  18. PJSIP编译与使用说明
  19. 美通企业日报 | 牛文文称明年创业要弯腰干脏活累活;高校百英里接力赛北大清华同济前三...
  20. 2021-12-08:扑克牌中的红桃J和梅花Q找不到了,为了利用剩下的牌做游戏,小明设计了新的游戏规则: 1) A,2,3,4....10,J,Q,K分别对应1到13这些数字,大小王对应0; 2) 游

热门文章

  1. 我38岁,从外企技术高管到失业在家,只因为做错了这件事
  2. 刚刚人均国民收入突破1万美元,作为打工人的你有感知吗?
  3. 被阿里带火的数据中台:“大中台、小前台”战略是什么?
  4. 案例学习BlazeDS+Spring之九Company Manager
  5. android qq音乐api使用,QQ音乐API
  6. linux 大文本文件,Linux文本文件处理(1)
  7. 乐源机器人优点跟缺点_桁架上下料机械手与上下料机器人一样吗?
  8. 电脑专家——DVI-D接口转HDMI接口
  9. 《深度学习笔记》——loss函数的学习笔记
  10. 各厂商磁编码器对比,AS5047、AS5048、AS5600、TLE5012、MA730