Sql Server中判断日志是否为一个星期
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中判断日志是否为一个星期相关推荐
- Sql Server中判断表或者数据库是否存在
SQL Server中判断数据库是否存在: 法(一): select * From master.dbo.sysdatabases where name='数据库名' 法(二): if db_id(' ...
- SQL Server中事务日志自动增长对性能的影响
SQL Server中事务日志自动增长对性能的影响 SQL Server中事务日志自动增长对性能的影响(上) SQL Server中事务日志自动增长对性能的影响(下) posted on 2011-0 ...
- 在SQL Server中判断一个作业是否正在运行
select step_id,run_status,run_date As rundate --a.run_time, a.* from msdb.dbo.sysjobhistory a inner ...
- SQL Server中事务日志已满的原因以及解决办法
错误描述:数据库的事务日志已满.若要查明无法重用日志中的空间的原因 ,请参阅sys.databases 中的 log_reuse_wait_desc 列 . 首先引入一下事务日志的概念(来自百度百科) ...
- 再谈SQL Server中日志的的作用
简介 之前我已经写了一个关于SQL Server日志的简单系列文章.本篇文章会进一步挖掘日志背后的一些概念,原理以及作用.如果您没有看过我之前的文章,请参阅: 浅谈SQL Server中的事务日志(一 ...
- SQL Server中的SQL语句优化与效率问题
很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解.比如: select * from table1 where name='zhan ...
- SQL Server中字符串处理函数
SQL Server中截取字符串常用函数 截取字符串中的最后一个斜杠后的所有字符: SELECT A.PIC_URL, RIGHT(A.PIC_URL,(CHARINDEX('/',REVERSE(A ...
- SQL Server中的计算列概述
In this article, we will explore computed columns in SQL Server and their configurations. 在本文中,我们将探讨 ...
- SQL Server 中深入理解GRANT、REVOKE 和 DENY 的区别
在SQL Server数据库登陆账户.数据库用户权限管理中,经常会授予权限.回收权限,有时还会拒绝权限.GRANT.REVOKE是我们常用的,但有时会遇到使用DENY的情形.从英文单词的字面意思来看, ...
最新文章
- R假设检验之莫德中位数检验(Mood‘s Median Test)
- Neutron 网络基本概念
- lenovo L480 进入bios_重装系统重启后不引导,重装系统无法进入引导
- 深度学习核心技术精讲100篇(三十二)-网易实时数仓实战应用
- IOS开发之----远程推送通知
- 框架基础:深入理解Java注解类型(@Annotation)
- Java笔记-DH密钥交换
- 什么是死锁及死锁的必要条件和解决方法【转】
- java编写一个整钱换零_Java编写钱币转换为大写程序
- [前端]npm安装慢,换用淘宝的镜像
- Autoware(Architecture Proposal)
- spilt的用法小结
- 计算机休眠会断电吗,电脑「睡眠」和「休眠」原来有这么大区别,下次别用错了。...
- 简单了解消息中间件及ActiveMQ
- HTML3-视频图像的插入
- 神州租车,致力于提供更加便利的出行方式
- 美团脱颖而出的经验_使用条件格式使重要的Outlook邮件脱颖而出
- PJSIP编译与使用说明
- 美通企业日报 | 牛文文称明年创业要弯腰干脏活累活;高校百英里接力赛北大清华同济前三...
- 2021-12-08:扑克牌中的红桃J和梅花Q找不到了,为了利用剩下的牌做游戏,小明设计了新的游戏规则: 1) A,2,3,4....10,J,Q,K分别对应1到13这些数字,大小王对应0; 2) 游
热门文章
- 我38岁,从外企技术高管到失业在家,只因为做错了这件事
- 刚刚人均国民收入突破1万美元,作为打工人的你有感知吗?
- 被阿里带火的数据中台:“大中台、小前台”战略是什么?
- 案例学习BlazeDS+Spring之九Company Manager
- android qq音乐api使用,QQ音乐API
- linux 大文本文件,Linux文本文件处理(1)
- 乐源机器人优点跟缺点_桁架上下料机械手与上下料机器人一样吗?
- 电脑专家——DVI-D接口转HDMI接口
- 《深度学习笔记》——loss函数的学习笔记
- 各厂商磁编码器对比,AS5047、AS5048、AS5600、TLE5012、MA730