SQL语句中的日期计算

2023-11-15

SQL语句中的日期计算


1. 本月的第一天
SELECT  DATEADD(mm,  DATEDIFF(mm,0,getdate()),  0) 

2. 本月的最后一天
SELECT  dateadd(ms,-3,DATEADD(mm,  DATEDIFF(m,0,getdate())+1,  0)) 

3.上个月的第一天
select dateadd(m,-1,  DATEADD(mm,  DATEDIFF(mm,0,getdate()),  0))

4. 上个月的最后一天
SELECT  dateadd(ms,-3,DATEADD(mm,  DATEDIFF(mm,0,getdate()),  0)) 

5. 本周的星期一
SELECT  DATEADD(wk,  DATEDIFF(wk,0,getdate()),  0)

6.本周的周日
select dateadd(d,+6 ,DATEADD(wk,  DATEDIFF(wk,0,getdate()),  0) )

7.上周的星期一
select dateadd(d,-7 ,DATEADD(wk,  DATEDIFF(wk,0,getdate()),  0) )

8.上周的周日
select dateadd(d,-1 ,DATEADD(wk,  DATEDIFF(wk,0,getdate()),  0) )

9. 一年的第一天
SELECT  DATEADD(yy,  DATEDIFF(yy,0,getdate()),  0) 

10. 季度的第一天
SELECT  DATEADD(qq,  DATEDIFF(qq,0,getdate()),  0) 

11. 去年的最后一天
SELECT  dateadd(ms,-3,DATEADD(yy,  DATEDIFF(yy,0,getdate()),  0))

12. 本月的第一个星期一
select  DATEADD(wk,  DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate)),getdate))),0)

13. 本年的最后一天
SELECT  dateadd(ms,-3,DATEADD(yy,  DATEDIFF(yy,0,getdate())+1,  0))。


Sql Server中的日期与时间函数
1.  当前系统日期、时间
    select getdate() 

2. dateadd  在向指定日期加上一段时间的基础上,返回新的 datetime 值
   例如:向日期加上2天
   select dateadd(day,2,'2004-10-15')  --返回:2004-10-17 00:00:00.000

3. datediff 返回跨两个指定日期的日期和时间边界数。
   select datediff(day,'2004-09-01','2004-09-18')   --返回:17

4. datepart 返回代表指定日期的指定日期部分的整数。
  SELECT DATEPART(month, '2004-10-15')  --返回 10

5. datename 返回代表指定日期的指定日期部分的字符串
   SELECT datename(weekday, '2004-10-15')  --返回:星期五

6. day(), month(),year() --可以与datepart对照一下

select 当前日期=convert(varchar(10),getdate(),120)
,当前时间=convert(varchar(8),getdate(),114)

select datename(dw,'2004-10-15')

select 本年第多少周=datename(week,'2004-10-15')
      ,今天是周几=datename(weekday,'2004-10-15')


http://www.52186.cn/nibablog/blogview.asp?logID=333

sql日期格式转换

--------------------------------------------------------------------------------
来源:CSDN   发布会员:新书城收集整理   发布时间:2006-7-31   人气:384
 
 
在sql中,smalldatetime及datetime型的数据显示不是那么让人满意,因此我找了些格式化的方法列出来"

convert(char(10),datetime,101)


在数据库取出来的时候就转换好
 select getdate()
 
 2006-05-12 11:06:08.177
 
 我整理了一下SQL Server里面可能经常会用到的日期格式转换方法:
 
 举例如下:
 select Convert(varchar(10),getdate(),120)

2006-05-12
 select CONVERT(varchar, getdate(), 120 )
 2006-05-12  11:06:08

 select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
 20060512110608
 
 select CONVERT(varchar(12) , getdate(), 111 )
 2006/05/12
 
 select CONVERT(varchar(12) , getdate(), 112 )
 20060512

 select CONVERT(varchar(12) , getdate(), 102 )
 2006.05.12
 
 其它几种不常用的日期格式转换方法:

 select CONVERT(varchar(12) , getdate(), 101 )
 0612/2005 select CONVERT(varchar(12) , getdate(), 103 )
 12/09/2004

 select CONVERT(varchar(12) , getdate(), 104 )
 12.05.2006

 select CONVERT(varchar(12) , getdate(), 105 )
 12-05-2006

 select CONVERT(varchar(12) , getdate(), 106 )
 12 05 2006

 select CONVERT(varchar(12) , getdate(), 107 )
 05 12, 2006

 select CONVERT(varchar(12) , getdate(), 108 )
 11:06:08
 
 select CONVERT(varchar(12) , getdate(), 109 )
 0512 2006 1

 select CONVERT(varchar(12) , getdate(), 110 )
 09-12-2004

 select CONVERT(varchar(12) , getdate(), 113 )
 12 052006

 select CONVERT(varchar(12) , getdate(), 114 )
 11:06:08.177
 

============================================================================================
实例演练

select * from salesmb
select count(*) from salesdreport where employeeid='11'and productsid='7' and (updatetime between '2006-8-1 00:00:00'and '2006-8-30 00:00:00') --销售数量
select sum(sales) from salesmb where eid='11'and productsid='7' and (mbrq between '2006-8-1 00:00:00'and '2006-8-30 00:00:00') --目标数量

select dateadd(d,-day(getdate()),getdate())

select cast(year(getdate()) as nvarchar)+'-'+cast(month(getdate()) as varchar)+'-1 00:00'
select cast(year(getdate()) as nvarchar)+'-'+cast(month(getdate()) as varchar)+'-'+cast(day(getdate()) as varchar)

select dateadd(m,1,dateadd(d,-day(getdate()),getdate()))


select dateadd(m,1,getdate())


=====================================================================================================================================================


select * from salesmb
select count(*) from salesdreport where employeeid='11'and productsid='7' and (updatetime between '2006-8-1 00:00:00'and '2006-8-30 00:00:00') --销售数量
select sum(sales) from salesmb where eid='11'and productsid='7' and (mbrq between '2006-8-1 00:00:00'and '2006-8-30 00:00:00') --目标数量

select dateadd(d,-day(getdate()),getdate())

select cast(year(getdate()) as nvarchar)+'-'+cast(month(getdate()) as varchar)+'-1 00:00'
select cast(year(getdate()) as nvarchar)+'-'+cast(month(getdate()) as varchar)+'-'+cast(day(getdate()) as varchar)

select dateadd(m,1,dateadd(d,-day(getdate()),getdate()))


select dateadd(m,1,getdate())


======================================================================================================================================================

select * from salesmb
select count(*) from salesdreport where employeeid='11'and productsid='7' and (updatetime between '2006-8-1 00:00:00'and '2006-8-30 00:00:00') --销售数量
select sum(sales) from salesmb where eid='11'and productsid='7' and (mbrq between '2006-8-1 00:00:00'and '2006-8-30 00:00:00') --目标数量

select dateadd(d,-day(getdate()),getdate())

select cast(year(getdate()) as nvarchar)+'-'+cast(month(getdate()) as varchar)+'-1 00:00'
select cast(year(getdate()) as nvarchar)+'-'+cast(month(getdate()) as varchar)+'-'+cast(day(getdate()) as varchar)

select dateadd(m,1,dateadd(d,-day(getdate()),getdate()))


select dateadd(m,1,getdate())

 

===============================================================================================================================


select getdate()
select dateadd(d,1,dateadd(d,-day(getdate()),getdate()))+"00:00"

declare @sdate smalldatetime
select cast(year(getdate()) as nvarchar)+'-'+cast(month(getdate()) as varchar)+'-1 00:00'
select @sdate
select dateadd(day,-1,dateadd(Month,1,@sdate))

select cast(year(getdate()) as nvarchar)+'-'+cast(month(getdate()) as varchar)+'-1 00:00'

select dateadd(d,-day(getdate()),getdate())

select dateadd(day,-1,dateadd(Month,1,cast(year(getdate()) as nvarchar)+'-'+cast(month(getdate()) as varchar)+'-1 00:00'))

select dateadd(d,-day(getdate()),getdate())

select dateadd(d,1,dateadd(d,-day(getdate()),getdate()))
select dateadd(m,

SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
SELECT dateadd(ms,0,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL语句中的日期计算 的相关文章

  • 邀请函

    区块链 元宇宙是近年来备受关注的新兴技术 也是推动数字经济发展的重要力量 高质量标准引领高质量发展 加快形成标准引领 充分释放区块链 元宇宙对实体经济牵引赋能效应 推进形成相关产业体系高质量发展新格局刻不容缓 为进一步探索标准化建设对区块链
  • Qt 操作数据库报错:QSqlDatabase: QSQLITE driver not loaded

    在解决了Clion Qt的数据库问题后 Clion Qt 添加SQLite数据库 又遇到了新的问题 在运行程序时 出现QSqlDatabase QSQLITE driver not loaded错误 使用下面语句输出支持的数据库 会输出空
  • 华为OD机试真题 Python,简单的解压缩算法,入栈出栈,队列

    def decoder s str gt str n len s A3B1 C 3 3 bracket pos stack 不是数字都入栈 def repeat stack pos num 弹栈次数 m len stack pos repe
  • element-ui中二次封装一个带select的form组件

    带select的form组件 样式 代码
  • java文档注释

    一 文档注释简介 需要编写注释的地方 包 公有类与接口 公有的和受保护的构造器及方法 公有的和受保护的域 注释应该放置在所描述特性的前面 注释以 开始 并以 结束 每个 文档注释在标记之后紧跟着自由格式文本 标记由 开始 如 author
  • OpenCV4.5.2 分水岭算法出现的 Error: Assertion failed (src_depth != CV_16F && src_depth != CV_32S) 解决方法

    在贾志刚老师关于opencv3 1 0的分水岭算法讲解中 链接为 添加链接描述 在merker和create markers代码块要是按照视频所给出代码在OpenCV 4 5 2上运行的话会出现下图这样的情况 这个错误出现在显示生成的 ma
  • Anaconda简介

    anaconda是python发行的包的管理工具 其中自带python的版本 还带很多python的包 安装它比安装python好 可以省掉再安装python包的时间 推荐使用Anaconda 用Anaconda安装python的包是非常便
  • 外设驱动库开发笔记53:MAX31856热偶变送器驱动

    在我们的产品中经常有需要温度检测的地方 而热电偶温度检测电路是我们常用的 热电偶温度检测的方法很多 有时出于简单方便的考虑我们会选择热偶温度变送器来实现 这一篇我们就来讨论使用MAX31856热电偶温度变送器实现温度的检测 1 功能概述 M
  • java模拟redisSentinel故障转移

    模拟redis出现宕机情况下redis sentinel的故障转移 1 java代码以下实现方式 倘若创建maven项目需要在pom xml中引入依赖 不是maven项目需要引入对应jar包
  • 大规模数据处理中拒绝连接错误分析处理

    1 处理的数据有几百个G 把数据处理成按照手机号计算1万多个特征 2 数据处理环境 spark 2 0 2 executor memory 40g total executor cores 120 driver memory 40g 3 报
  • spring boot 使用 com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver的区别

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 今天集成spring boot 2 1 1构建web应用并且集成jdbc 发现默认用的8 0 13
  • 记录一下Win10启用WSL2的流程

    个人笔记 请勿转载 参考文章如下 Using WSL2 in a Docker Linux container on Windows to run a Minecraft Java Edition Windows 10开启Linux子系统
  • win10下如何装CH340驱动

    由于win10系统对PL2303兼容性不太好 而CH340兼容性相对较好 但是 win10系统安装CH340串口驱动后 一直有黄色叹号 并且显示 由于windows无法加载这个设备所需的驱动程序 导致这个设备工作异常 这是因为win10有个
  • 自然语言处理学习笔记(一)————概论

    目录 1 自然语言处理概念 2 自然语言与编程语言的比较 1 词汇量 2 结构化 3 歧义性 4 容错性 5 易变性 6 简略性 3 自然语言处理的层次 1 层次图 2 自然语言处理系统输入源 3 词法分析 4 信息抽取 5 文本分类与文本
  • 打印出1-100的奇数 (C语言)

    代码 include
  • React Hooks —— useState异步更新队列、闭包、浅比较深入理解

    文章目录 useState 设计原理 实现原理 setXXX沿着作用域查找闭包的理解 与同步异步无关 更新多状态 方案一 类似于类组件中一样 让状态值是一个对象 包含需要的全部状态 每一次只修改其中的一个状态值 setXXX不支持类组件se
  • 前端导出excel文件

    文章目录 安装插件 下载成excel文件 主要代码分析 将文件转成文件流 用于下载 构建工作簿 用于下载 下载函数全部代码 js原生使用文件流进行下载 new Blob 封装的完整的Export2Excel js文件 参考 安装插件 imp
  • 隐式神经表示

    以图像为例 其最常见的表示方式为二维空间上的离散像素点 但是 在真实世界中 我们看到的世界可以认为是连续的 于是 可以考虑使用一个连续函数来表示图像的真实状态 然而我们无从得知这个连续函数的准确形式 因此有人提出用神经网络来逼近这个连续函数
  • 问题解决:/lib/libEGL.so.1:对‘wl_display_dispatch_queue_pending’未定义的引用

    在安装opencv2 4和编译程序的时候 经常出现的一个问题 弄了好久 最后无意间解决了 错误描述 lib libEGL so 1 对 wl display dispatch queue pending 未定义的引用 collect2 错误
  • FreeRTOS学习笔记(8)---- 软件定时器

    使用FreeRTOS软件定时器需要在文件FreeRTOSConfig h先做如下配置 1 configUSE TIMERS 使能软件定时器 2 configTIMER TASK PRIORITY 定时器任务优先级 3 configTIMER

随机推荐

  • PyCharm创建.py文件报错:Error parsing Velocity template: Encountered ““ as [line 5, column 1]

    使用的模板是 usr bin env python3 coding UTF 8 Date DATE TIME Author Name 解决方法 和后面的说明之间 要有空格 改为 usr bin env python3 coding UTF
  • sleep、interrupt等线程相关方法介绍

    1 sleep方法 package Thread public class Test01 Sleep public static void main String args public static native void sleep l
  • 安卓自动化测试框架

    安卓APP测试框架总结 基于Instrumentation的测试框架 比如Espresso Robotium Selendroid等 都不能支持跨APP使用 如自动化测试中有跨APP操作 我们可以结合UiAutomator实现 支持BDD
  • Java编程工具(12):idea中Compile、Make和Build的区别

    目录 1 build rebuild和recompile 2 Compile Make和Build的区别 1 build rebuild和recompile 标注 1 Build Project 编译项目 标注 2 Build Module
  • 读完这个我懂了JNDI

    JNDI 是什么 JNDI是 Java 命名与目录接口 Java Naming and Directory Interface 在J2EE规范中是重要的规范之一 不少专家认为 没有透彻理解JNDI的意义和作用 就没有真正掌握J2EE特别是E
  • 分区表正被其它程序独占访问_硬盘主引导记录MBR程序代码分析——小白到高手的进阶...

    MBR是什么 MBR 全称为Master Boot Record 即硬盘的主引导记录 为了便于理解 一般将MBR分为广义和狭义两种 广义的MBR包含整个扇区 引导程序 分区表及分隔标识 也就是上面所说的主引导记录 而狭义的MBR仅指引导程序
  • java安全沙箱机制介绍

    java安全沙箱机制介绍 组成Java沙箱的基本组件如下 类加载体系结构 class文件检验器 内置于Java虚拟机 及语言 的安全特性 安全管理器及Java API Java安全模型的前三个部分 类加载体系结构 class文件检验器 Ja
  • 综合指数:拉氏指数和派氏指数

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 拉式公式 报告期p1 基期q0之和 除以 基期p0 基期q0 p0 q0是假定的 可以这么理解 如果按照基期的价格 那么现在有多少销售额呢 派式公式
  • 08-3_Qt 5.9 C++开发指南_Graphics View绘图架构

    文章目录 1 场景 视图与图形项 1 1 场景 1 2 视图 1 3 图形项 2 Graphics View 的坐标系统 2 1 图形项坐标 2 2 视图坐标 2 3 场景坐标 2 4 坐标映射 3 Graphics View 相关的类 3
  • 常用的测试平台

    测试用例管理与bug管理平台 测试用例管理平台 jira 推荐方案 定制性很强 redmine 推荐方案 开源 活跃 定制性很强 Testlink 流行的测试用例管理平台 体验不是很好 其它 tapd 云效 禅道 gitlab 在线协作文档
  • 巧用符号链接移动文件夹位置

    有些时候我们可能因为系统或者某些软件的缓存占得比较多 想把他们从C盘移动到其他地方 但是软件本身并没有提供修改缓存文件夹的功能 这下应该怎么办呢 其实还真有一个好办法可以完美解决 这就是今天要为大家介绍的符号链接 符号链接这个名词经常使用L
  • Django中解决redis-py versions 3.2.0 or later. You have 2.10.6版本问题

    问题描述 在django项目中 添加异步任务 跑服务时遇到redis py版本问题 如下截图 提示版本较低 解决 从4 3 0到4 4 0的Kombu更新停止了对redis py v2 10 6的支持 因此迫使我们升级redis py版本
  • Python基础知识(注释、变量、常量)

    注释 是对代码进行解释和说明 注释是给人看的 机器是不运行的 Python中注释 单行注释 注释内容 多行注释 注释内容 或者 注释内容 变量 可以发生改变的一个量 变量是用来区分不同数据的 可以指向一个内存空间 帮我们存储一些数据 变量的
  • pip安装opencv-python不成功

    一个比较笨但还算有效的方法 如果你的python版本较低 如现在2023 07 04使用python3 6环境 使用pip默认安装会是最新的4 8 0 7版本 但事实上这个版本不支持py3 6环境 所以你需要去这里查支持py3 6的最近的一
  • Unity在development模式下的一个坑

    最近发现unity生成的包在Nexus上如果打开带Input控件的界面时 关闭屏幕再打开 则永远无法显示输入法界面了 一开始还以为是unity自己本身的bug 后来发现release版本并无这个问题 于是弄了个最简单的测试版本分别打了 两个
  • day01-编程题

    选择题 题目1 单选 下列属于是计算机硬件的是 D 选项 A QQ B 微信 C 飞秋 D CPU 题目2 单选 下列可以保证java程序跨平台运行的是 A 选项 A JVM java虚拟机 B Windows系统 C Linux系统 D
  • JAVA第三方技术---Elasticsearch---与JDK版本对应关系

    JAVA第三方技术 Elasticsearch 与JDK版本对应关系 目录 文章目录 1 对应关系表 2 Elastic support地址 3 JVM support地址 后记 内容 1 对应关系表 Elasticsearch and J
  • windows 下配置redis 让其他主机访问本机的redis数据

    在做一个分布式项目的时候 redis不使用 ip 127 0 0 1 启动的时候一直报错 即使使用本机的地址也会报错 然后自己去网上找了一些资料都没有解决 网上一些资料又说改配置文件 把 redis windows conf 里面的 pro
  • 10分钟内用Ezo和Python构建以太坊Oracle

    上一篇 我写了用Web3 js构建以太坊Oracle 这个练习给了我一些新的Web3 js 1 0版本知识 许多新的好东西可供选择而且使用它实现一个简单的oracle非常容易 但是 显然必须有更好的方法 Instant Oracles 只需
  • SQL语句中的日期计算

    SQL语句中的日期计算 1 本月的第一天 SELECT DATEADD mm DATEDIFF mm 0 getdate 0 2 本月的最后一天 SELECT dateadd ms 3 DATEADD mm DATEDIFF m 0 get