在做报表的时候,有个本月和上月同期对比的业务,开始是这样的:2月27号对比到上月1月27号 ,2月28号对比到1月28号,领导要求2月28号对比到1月31号。
需求就是月末跟月末对比,非月末跟上月同期对比,于是调整下查询的开始日期和结束日期:

  1. 今天不是月末的情况:
declare  @start  datetime --开始日期
declare  @end  datetime -- 结束日期
declare  @today  datetime /*今天*/
declare  @tomorrow datetime /*明天*/
set @today =  '2018-2-27 23:55:00'
set @start = CONVERT(varchar(7), dateadd(mm,-1,@today) , 120) + '-01'
set @tomorrow =dateadd(day,1,@today)
-- 如果今天是月末,则结束时间设置为本月1号
if datediff(month,@today,@tomorrow) = 0 set @end = dateadd(mm,-1,@today)
else set  @end = CONVERT(varchar(7), @today , 120) + '-01'
select   @start 开始  ,@end  结束

  1. 今天是月末的情况
declare  @start  datetime --开始日期
declare  @end  datetime -- 结束日期
declare  @today  datetime /*今天*/
declare  @tomorrow datetime /*明天*/
set @today =  '2018-2-28 23:55:00'
set @start = CONVERT(varchar(7), dateadd(mm,-1,@today) , 120) + '-01'
set @tomorrow =dateadd(day,1,@today)
-- 如果今天是月末,则结束时间设置为本月1号
if datediff(month,@today,@tomorrow) = 0 set @end = dateadd(mm,-1,@today)
else set  @end = CONVERT(varchar(7), @today , 120) + '-01'
select   @start 开始  ,@end  结束

Sql Server 判断月末及上月同期对比相关推荐

  1. SQL SERVER 判断是否存在并删除某个数据库、表、视图、触发器、储存过程、函数

    – SQL SERVER 判断是否存在某个触发器.储存过程 – 判断储存过程,如果存在则删除 IF (EXISTS(SELECT * FROM sysobjects WHERE name='proce ...

  2. SQL Server 和 Oracle 的常用函数对比

    SQL Server 和 Oracle 的常用函数对比 ---------数学函数 1.绝对值 S:select abs(-1) value O:select abs(-1)  value from ...

  3. sql server 判断是否存在数据库,表,列,视图

    1 判断数据库是否存在 if exists (select * from sys.databases where name = '数据库名')    drop database [数据库名] 2 判断 ...

  4. SQL Server判断对象是否存在 (if exists (select * from sysobjects )

    1 判断数据库是否存在 Sql代码 if exists (select * from sys.databases where name = '数据库名') drop database [数据库名]   ...

  5. SQL server判断字符串是否包含某个字符串

    函数:CHARINDEX 通过CHARINDEX如果能够找到对应的字符串,则返回该字符串位置,否则返回0 基本语法如下: CHARINDEX ( expressionToFind , expressi ...

  6. oracle stdevp函数,SQL Server和Oracle的常用函数对比

    ---------数学函数 1.绝对值 S:select abs(-1) value O:select abs(-1) value from dual 2.取整(大) S:select ceiling ...

  7. SQL Server判断日期是否为周六 周日

    DATEPART 返回代表指定日期的指定日期部分的整数. 语法 DATEPART ( datepart ,date ) 参数 datepart 是指定应返回的日期部分的参数.下表列出了 Microso ...

  8. SQL SERVER 判断文件是否存在

    有时候我们需要判断一些物理文件是否存在,然后在做一些处理,比如作业定时导入txt文件,需要提前判断文件是否生成存在,然后再做导入操作,我们可以利用xp_fileexist来做判断,新建方法如下: CR ...

  9. SQL SERVER 判断是否数字的方法

    转自:https://www.cnblogs.com/worfdream/articles/3055131.html ----------------------------------------- ...

最新文章

  1. 如果没有杜撰,可还有历史?
  2. PHPCMS V9 添加二级导航
  3. 关掉magiskhide_Magisk v20.4 – The Magic Mask for Android 安裝流程
  4. Linux的top命令
  5. js中this关键字的使用
  6. javaI/O流小结
  7. 闲鱼账号被封怎么办?解封看这里!
  8. nlp论文——《Efficient Estimation of Word Representations in Vector Space》(向量空间中词表示的有效估计)
  9. 关于bootstrap-table服务端分页问题
  10. 对称构型机器人轮直径校准思路
  11. 线上python课程一般多少钱-参加Python培训机构要花多少钱
  12. Windows网络编程——查询本机的主机名称及IP地址(控制台应用程序)
  13. macOS Monterey 12.3.1 (21E258) 虚拟机 ISO 镜像
  14. zookeeper应用——集中配置管理系统的实现
  15. 消息队列(Message Queue)简介及其使用
  16. 天津大学2020年考研考前公告
  17. 永洪科技贺新颖:业务中台+数据中台,赋能企业核心业务
  18. Java智能卡基础篇
  19. 【超简便的Python】 提取两个列表的共同元素
  20. 判断HTTP代理的高匿程度

热门文章

  1. 深度学习目标检测:YOLOv5实现红绿灯检测(含红绿灯数据集+训练代码)
  2. php 数据库 like,php模糊查询_php 简单内容查询代码 利用sql like模糊查询
  3. 2018最新vue.js实战项目:美团外卖平台
  4. 2725: [Violet 6]故乡的梦
  5. QtCreator 调试器配置
  6. 解决 Ubuntu 19.10 安装 WPS 2019 后无法启动的问题
  7. css设置各种中文字体,雅黑,黑体,宋体,楷体等等
  8. 华为OD机试 - 免单统计(Java JS Python)
  9. 高德地图web端接入
  10. wp8 小鬼电子书 应用