sql 日期

SQL 获取指定月份的所有日期,SQL日期分页 最近做数据分析,遇到许多统计查询,其中有按月份统计每天的数据信息,由于sql中暂时没有获取二个日期间的日期集合函数,所以就需要我们手动构建sql,这里整理了下分享给出来供大家参考 阅读详情

什么奇葩招聘要求:我有四不招???

原创 丶平凡世界 SQL数据库开发 2024-03-15 08:30 广东

点击关注公众号,SQL干货及时获取

后台回复:1024,获取海量学习资源

SQL刷题专栏

SQL刷题系列

最近看到这样一个招聘广告,不知真假,但从目前职场来看,有这样想法的公司或老板大有人在。

图片

这其实反映了一种挺极端的老板想法,就是希望员工啥都不图,只管拼命干活,对公司死心塌地的。真的资本家看了都落泪。

而且这种想法不顾员工个人感受,工资、休息时间、个人生活,这些对员工来说都很重要,如果老板这么搞,估计没有哪个员工愿意当这冤大头。

一个好公司,应该是既能让公司发展,也能照顾到员工的个人成长和幸福,这样大家才能一起走得更远。

---以下是今天的SQL干货---

平常我们在计算时间或推算日期时都会用到一些日期函数,大多都是些比较常见的,比如YEAR(),MONTH(),DATEADD()等等,今天给大家讲解一些比较高级的日期函数。

测试环境

SQL Server 2017

@@DATEFIRST

作用

针对特定会话,此函数返回 SET DATEFIRST 的当前值。

语法

@@DATEFIRST

注意:

SET DATEFIRST n 指定一周的第一天(星期日、星期一、星期二等) 。 n 值的范围为 1 到 7 。

示例

比如我们指定星期天为每周第一天,那么今天(2021-12-08)的

@@DATEFIRST就会返回1。具体如下:

SET DATEFIRST 1; --表示星期一为每周第一天
SELECT @@DATEFIRST; --返回DATEFIRST的值

结果:

图片

这个函数的可能很多人觉得作用不大,其实对设置每周的第一天是很重要的。美国是把每周的星球日当第一天,而我国通常把星期一当为每周的第一天。

比如我想知道上周第3天的销量,你就需要先定义上周的星期几是第1天,才能进一步计算第3天的销量。

系统时间

获取系统时间有一组函数,常见的有GETDATE函数,此外还有这些函数。

SELECT SYSDATETIME()
SELECT SYSDATETIMEOFFSET()
SELECT SYSUTCDATETIME()
SELECT CURRENT_TIMESTAMP  
SELECT GETDATE()
SELECT GETUTCDATE()

结果:

图片

其中包含UTC的系统时间是世界标准时间,其他为当前时区时间。

注意:CURRENT_TIMESTAMP与GETDATE()函数等价。

DATEADD

作用

将指定的 number 值(作为带符号整数)与输入 date 值的指定 datepart 相加,然后返回该修改值 。

语法

DATEADD (datepart , number , date )

其中datepart参数由系统定义,具体参数列表如下:

datepart缩写
年yy, yyyy
季度qq, q
月mm, m
年中的日dy, y
日dd, d
周wk, ww
星期dw, w
小时hh
分钟mi, n
秒ss, s
毫秒ms
微妙mcs
纳秒ns

示例

查询上个月的今天,下个月的今天

SELECT DATEADD(month, -1, '20211208');
SELECT DATEADD(month, 1, '20211208');

结果:

图片

DATEDIFF

作用

返回指定的 startdate 和 enddate 之间所跨的指定 datepart 边界的计数(作为带符号整数值) 。

语法

DATEDIFF ( datepart , startdate , enddate )

注意:返回值为startdate 与 enddate 之间的 int 差异,以 datepart 设置的边界表示 。

示例

计算去年第一天到今天之间有多少天

SELECT DATEDIFF(DAY,'20200101','20211208')

结果:

图片

DATEFROMPARTS

作用

此函数返回映射到指定年、月、日值的 date 值 。

语法

DATEFROMPARTS ( year, month, day )

注意:

  • DATEFROMPARTS 返回一个 date 值,其中日期部分设置为指定的年、月和日,时间部分设置为默认值 。 对于无效参数,DATEFROMPARTS 将引发错误。 如果至少有一个必需参数具有 NULL 值,则 DATEFROMPARTS 返回 NULL。

  • 此函数可在 SQL Server 2012 (11.x) 及更高版本的服务器上执行远程处理。 它不能无法在版本低于 SQL Server 2012 (11.x) 的服务器上执行远程处理。

示例

通过指定具体的年月日,返回今天的日期:

SELECT DATEFROMPARTS ( 2021, 12, 8 ) AS Result;

结果

图片

DATENAME

作用

返回表示指定 date 的指定 datepart 的字符串。

语法

DATENAME ( datepart , date )

示例

SELECT DATENAME(year, getdate()) 'Year' 
    ,DATENAME(month, getdate()) 'Month'
    ,DATENAME(day, getdate()) 'Day'
    ,DATENAME(weekday,getdate()) 'Weekday';

结果:

图片

通过此函数,我们可以知道具体某一天的年月日星期等具体信息。特别是在进行数据分组统计时经常用到。

DATEPART

作用

返回表示指定 date 的指定 datepart 的整数。

语法

DATEPART ( datepart , date )

示例

SELECT DATEPART(year, getdate()) 'Year' 
    ,DATEPART(month, getdate()) 'Month'
    ,DATEPART(day, getdate()) 'Day'
    ,DATEPART(weekday,getdate()) 'Weekday';

结果:

图片

细心的同学可能发现DATEPART和DATENAME有很多相似之处,但是请注意他们返回的类型是不同的,DATEPART返回的是数值类型,DATENAME返回的是字符串类型。

EOMONTH

作用

返回包含指定日期所在月份的最后一天(具有可选偏移量)

语法

EOMONTH ( start_date [, month_to_add ] )

示例

显示本月的最后一天

--定义一个日期类型的变量,并且给它赋值20211208
DECLARE @date DATETIME = '20211208';
SELECT EOMONTH ( @date ) AS Result;
GO

结果:

图片

添加偏移参数month_to_add

例如返回下月的最后一天:

DECLARE @date DATETIME = '20211208';
SELECT EOMONTH ( @date,1 ) AS Result;
GO

结果:

图片

ISDATE

作用

如果表达式是有效的 date、time、或 datetime 值,则返回 1;否则返回 0 。

如果表达式为 datetime2 值,则 ISDATE 返回 0 。

语法

ISDATE ( expression )

示例

判断今天(2021-12-08)是否为合法日期

IF ISDATE('2021-12-08') = 1
    SELECT '合法日期' Result 
ELSE  
    SELECT '不合法日期' Result;

结果:

图片

有兴趣的同学可以尝试判断'2022-02-30'是否合法。

实战应用

1、本月第一天

SELECT   DATEADD(mm,DATEDIFF(mm,0,getdate()),0)
--2021-12-01 00:00:00.000

2、本周星期一

SELECT   DATEADD(wk,DATEDIFF(wk,0,getdate()),0)
--2021-12-06 00:00:00.000

3、今年第一天

SELECT DATEADD(yy,DATEDIFF(yy,0,getdate()),0)
--2021-01-01 00:00:00.000

4、下个季度第一天

SELECT   DATEADD(qq,DATEDIFF(qq,-1,getdate()),0)
--2021-01-01 00:00:00.000

5、上个月最后一天

SELECT DATEADD(dd,-DAY(getdate()),getdate())
--2021-11-30 20:14:21.850

6、今年最后一天

SELECT DATEADD(year,DATEDIFF(year,0,DATEADD(year,1,getdate())),-1)
--2021-12-31 00:00:00.000

7、去年同一天

SELECT DATEADD(YEAR,-1,GETDATE())
--2020-12-08 20:19:05.987

以上就是今天要给大家介绍的高级日期函数,觉得不错,记得转发分享给更多人,谢谢啦~

 

图片

最后给大家分享我写的SQL两件套:《SQL基础知识第二版》和《SQL高级知识第二版》的PDF电子版。里面有各个语法的解释、大量的实例讲解和批注等等,非常通俗易懂,方便大家跟着一起来实操。

有需要的可以下载学习,只需要在下面的公众号「数据前线」(非本号),后台回复关键字:SQL,就行

 

数据前线

图片

 

后台回复关键字:1024,获取一份精心整理的技术干货

后台回复关键字:进群,带你进入高手如云的交流群。

 

 
 
 

推荐阅读

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

文章有帮助的话,点个赞或在看吧。

谢谢支持

职场系列22

SQL案例20

互联网公司6

程序员11

职场系列 · 目录

上一篇公司新来一个技术总监:谁再在 SQL 中写 in 和 not in,直接走人!下一篇一个小公司的技术开发心酸事,已倒闭。

阅读原文

​

喜欢此内容的人还喜欢

中国永远不会倒闭的四个行业

SQL数据库开发

不喜欢

不看的原因

确定

  • 内容低质
  • 不看此公众号内容

公司新来一个技术总监:谁再在 SQL 中写 in 和 not in,直接走人!

SQL数据库开发

不喜欢

不看的原因

确定

  • 内容低质
  • 不看此公众号内容

你是外包,麻烦不要偷吃零食。。注意素质!

SQL数据库开发

不喜欢

不看的原因

确定

  • 内容低质
  • 不看此公众号内容

微信扫一扫
关注该公众号

人划线

RML2016.10a (CNN、LSTM、CNN-LSTM、CNN-LSTM-Multi-head-attention, TensorFlow) RML2016.10a (CNN、LSTM、CNN-LSTM、CNN-LSTM-Multi-head-attention, TensorFlow) 包含所有数据和代码,支持一键运行(jupyter) 阅读详情

相关推荐

Lumerical INTERCONNECT 中的自相位调制 (SPM) 仿真实践指南

本文详细介绍了在Lumerical INTERCONNECT中进行自相位调制(SPM)仿真的实践指南。从SPM的基础物理原理出发,深入解析非线性薛定谔方程和克尔效应,到INTERCONNECT中NLSE波导元件的配置技巧,以及时域与频域中SPM效应的观测方法。文章还提供了常见问题排查和进阶联合仿真技巧,帮助用户高效完成从仿真到实测的校准过程。

weixin_42565652的博客 187

44.SQLserver中 DATEFROMPARTS() 函数的语法

year - 一个整数值,指定日期的’YEAR’部分,表示为整数。month - 一个整数值,指定日期的’MONTH’部分。day - 一个整数值,指定日期的’DAY’部分。输出的结果:2023-02-16。

m0_57310426的博客 1226

浅谈云计算01 | 云计算服务的特点

在当今数字化时代,云计算作为一种强大的技术解决方案,正逐渐改变着企业和个人对信息技术的使用方式。本文将详细探讨云计算的五个主要特点,包括按需自助服务、广泛的网络接入、资源池化、快速弹性伸缩以及可计量服务。

时光札记 1120

SQL关于日期的计算合集

在SQL Server中,时间和日期是常见的数据类型,也是数据处理中重要的一部分。SQL Server提供了许多内置函数,用于处理时间和日期数据类型。这些函数可以帮助我们执行各种常见的任务,例如从日期中提取特定的部分,计算日期之间的差异,以及将日期和时间转换为不同的格式。本文将介绍SQL Server中一些常用的时间和日期函数,以及它们的用法和示例。

qq_33909788的博客 2438

Ta-Lib源码解析(三):蜡烛图指标 (Candlestick Indicator) #(附Python重构代码和示意图)(补充中)

蜡烛图指标为识别K线形态的指标,笔者认为重点在于定义方式所提供的思路,背后的投资逻辑可以借鉴但不建议直接参考文档的翻译内容和源码逻辑存在不一致的现象,笔者分别列出中文百科中的定义和源码实际逻辑,供大家参考技术分析理论中的一些模糊词,ta-lib中给出了精确的定义源码

量化就是探索生活 3254

电力工程师必看:GOOSE/SV/MMS三协议在智能变电站中的分工与联动实例

本文深入解析了智能变电站中GOOSE、SV、MMS三大核心通信协议的分工与协同机制。GOOSE协议作为过程层的“闪电信使”,负责毫秒级传输跳闸命令等事件信息;SV协议则传输精确同步的电流电压采样值流;而MMS协议作为站控层的“管理语言”,实现设备监控与数据管理。三者基于IEC 61850标准,在过程层、间隔层和站控层之间高效联动,共同构建了智能变电站稳定可靠的通信骨架。

jj890的博客 366

SQL Server ->> 时间函数: EOMONTH, DATEFROMPARTS, TIMEFROMPARTS, DATETIMEFROMPARTS, DATETIMEOFFSETFROMPAR...

上面几个函数都是SQL Server 2012新增的时间函数。 EOMONTH 返回传入时间的月结束日,返回数据类型为DATE SELECT EOMONTH(GETDATE()) 结果为 2016-01-31 DATEFROMPARTS 如同C#或者Java声明一个DATETIME实例那样通过传入YEAR, MONTH, DAY的数字值得到一个D...

weixin_30342209的博客 402

【Ensp】FTP服务器设置和FTP解析

大部分的多媒体多媒体应用协议,如SIP,FTP,NetMeeting协议等,使用约定的固定端口来初始化一个控制连接,再动态地选择端口用于数据传输,并且这些端口选择是不可预测的。在防火墙设置时,可以通过ASPF(应用层报文过滤)中的Server Map表来满足多通道协议的正常工作,它正常检测应用层报文信息,并动态地根据报文内容创建和删除临时的Server Map表项,以允许其它非约定端口通过防火墙。(5)我们可以在路由器或能访问ftp服务器的设备上,通过cli命令行的方式来访问ftp服务器。

进击的小小白 1863

第四十五章 SQL函数 DATEPART

文章目录第四十五章 SQL函数 DATEPART大纲参数描述Datepart 参数日期输入格式无效的参数错误代码范围和值检查示例 第四十五章 SQL函数 DATEPART 日期/时间函数,返回表示日期/时间表达式指定部分的值的整数。 大纲 DATEPART(datepart,date-expression) 参数 datepart - 要返回的日期/时间信息的类型。日期或时间部分的名称(或缩写)。这个名称可以用大写或小写来指定,有或没有引号。datepart可以指定为文字或主机变量。 date-expr

yaoxin521123的博客 1万+

软件工程案例教程·韩万江【课后习题】

!!!!

weixin_57858263的博客 6419

Coze实战:解锁多Bot协同与条件分支工作流的奥秘

本文详细介绍了在字节跳动Coze平台实现多Bot协同与条件分支工作流的方法。首先阐述了Coze平台的功能优势,包括丰富的插件、知识库和工作流功能。随后分步骤讲解了多Bot协同的实现:从准备工作、创建Bot到协同配置,并提供了电商客服的实例演示。在条件分支工作流部分,详细说明了条件节点的作用类型、条件设定方法以及具体配置操作,强调测试优化的重要性。最后通过电商平台综合案例,展示了多Bot协同与条件分支的实际应用效果,并针对常见问题提供解决方案。文章为开发者在Coze平台上构建智能应用提供了实用指导,有助于提升

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 450

Sql Server DATEPART()函数

例如,`DATEPART(day, '2022-08-15')`将返回15,因为'2022-08-15'是星期六。DATEPART()函数是SQL Server中的一个日期函数,用于返回指定日期时间的指定日期部分的整数。DATEPART(month, 日期字段) = MONTH(GETDATE()) AND。WHERE DATEPART(year, 日期字段) = YEAR(GETDATE()) AND。DATEPART(day, 日期字段) = DAY(GETDATE())

weixin_42078689的博客 2386

数据权限设计

随着IT新技术不断完善成熟,企业数字化建设得到全面的发展,数据将成为一个创造财富的重要来源,并且越来越多地被视为一项值得重视的企业资产。未来,很多企业之间的竞争,其实也是资源和数据竞争。那么针对数据资产,如何保障它的安全性呢?数据的权限管理无疑是必不可少的。数据权限从数据源来控制不同的用户能够查看、使用和授权不同的数据表数据(其实就是数据表行列的管控),就如同筑起了一道道护城墙,为数据安全提供了保障。

qq_40664711的博客 1万+

sql中日期的比较_如何在SQL中比较日期?

sql中日期的比较How to compare date in SQL? For example, the ‘users’ table has a column ‘loggin’ which is the date and time. How to find out the ‘users’ whose ‘loggin’ date is later than Jan 10, 2017? 如何在SQL...

cuma2369的博客 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

SQL日期函数

一、知识点 在SQL中,由于不能直接执行算术函数,所以日期函数在SQL就十分有用。 日期函数拥有多个方法,每个方法都可以对日期进行查改或计算。 比如: GETDATE()方法,获取当前的系统日期。 DATEADD(日期部分,number,date)返回带有指定数字(number)的日期(date),该数字添加到指定的日期部分(datepart)。 DATEDIFF(日期部分,date1,date2)返回两个日期中指定的日期部分之间的差值。 DATENAME(日期部分,date)返回日期中日期部分的字符串形

kids_fan的博客 1万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

SQL-日期操作

本文主要记录关于SQL-日期操作的相关笔记。涉及函数date_add(),date_sub(),datediff(),date_format(),makedate(),last_date()等

Sky-JT的博客 3570

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

sql语句查询 日期比较_SQL查询比较日期

sql语句查询 日期比较For comparing dates in SQL, we use the DATE() function. The date should be in the DDMMYY format. The following is the syntax for the DATE() function. 为了比较SQL中的日期,我们使用DATE()函数。 该日期应为DDMMYY...

cumt30111的博客 7060

SQL 中常用的日期函数以及SQL中常见的日期转换

1.SQL 中常用的日期函数 当前的时间:now() 当前年月日curdate() 当前的时刻curtime() 日期的运算datediff('2020-10-20','1996-10-29') date_diff(time,time1):返回两个日期之间(time,time1)的天数 timediff(time,time1):两个日期相减 time-time1,返回 time 差值 timestampdiff(unit,begin,end):返回end-begin的结果,其中begin和end.

Without_1113的博客 2170

SQL语句获取日期

本篇文章由泉州SEOwww.234yp.com 整理发布,mssqlwww.234yp.com/Article/168209.html谢谢合作!mssql   SQL语句获取特定日期   1.一个月第一天的   Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)   2.本周的星期一   Select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)   3.一年的第一天   Selec...

dxxxxx178的博客 3503

sql日期补全

IF OBJECT_ID('TBL')IS NOT NULL DROP TABLE TBL GO CREATE TABLE TBL( 日期 DATE ) GO INSERT TBL SELECT '2014-09-30' UNION ALL SELECT '2014-10-06' go DECLARE @DATE DATE SELECT @DATE=MAX(日期) FROM TBL ;WITH

MSSQL_DBA的专栏 2428

sql日期大于某日期_Excel VBA+SQL 日期的应用

日期数据在SQL表达式中的应用 在SQL表达式运算符条件中,要查询日期和时间类型的数据,需要在数据值两端加上井字符号(#)以表示日期类型。 日期可以有多种表示方式,最符合中国人的习惯是“年-月-日”或“年/月/日”的表示方式。也就是说年月日之间的分隔符可以用“-”或“/”。 例如表示2018年3月15日 可以采用以下表达式:年月日 #2018-03-15#年日月 #2018-15-03#年月日 #...

weixin_39811036的博客 1281

oracle sql中月份加1,sql日期有关函数以及oracle日期有关函数

sql日期函数-- DATEADD-- 在向指定日期加上一段时间的基础上,返回新的 datetime 值。-- DATEADD ( datepart , number, date )-- 日期部分 缩写-- Year yy, yyyy-- quarter qq, q-- Month mm, m-- dayofyear dy, y-- Day dd, d-- Week wk, ww-- Hour h...

weixin_36211712的博客 3995

SQL 日期函数

本博客将介绍一些常用的SQL日期函数,包括DATEDIFF()、TIMESTAMPDIFF()、CURDATE()、NOW()等。我们将详细解释每个函数的作用和用法,并提供示例代码以帮助读者更好地理解和应用这些函数。无论您是SQL初学者还是有一定经验的开发者,本博客都将为您提供有关日期函数的全面指南,帮助您更高效地处理日期和时间相关的数据。

m0_73070900的博客 2204

oracle日期sql,ORACLE SQL 日期处理

ORACLE SQL日期处理Oracle 中的日期型数据实际含有两个值: 日期和时间日期函数(6个函数)MONTHS_BETWEEN 两个日期相差的月数ADD_MONTHS 向指定日期中加上若干月数NEXT_DAY 指定日期的下一个星期 * 对应的日期LAST_DAY 本月的最后一天ROUND 日期四舍五入TRUNC 日期截断注意(日期的数学运算):1. 在日期上加上或减去一个数字结果仍为日期。2...

weixin_30641041的博客 1095
上一篇: sql 左联 右联
Bill11YAng
博客等级 码龄14年 165粉丝 230原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值