SQL Server日期计算(收藏)

sybase日期函数全解析 Sybase日期函数解析 1、Sybase 4个日期函数 2 应用分析 2.1 取时间的某一个部分 2.2 取时间差 2.3 加上表达式指定的时间长度 正数向后加 负数向前退 2.4 字符串时间 2.5 取数据库当前时间到毫秒 2.6 取下个月保证两 2.7 取数据库当月最后一天:(即下个月减一天) 立即下载

        通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。 
       在使用本文中的例子之前,你必须注意以下的问题。大部分可能不是所有例子在不同的机器上执行的结果可能不一样,这完全由哪一天是一个星期的第一天这个设置决定。第一天(DATEFIRST)设定决定了你的系统使用哪一天作为一周的第一天。所有以下的例子都是以星期天作为一周的第一天来建立,也就是第一天设置为7。假如你的第一天设置不一样,你可能需要调整这些例子,使它和不同的第一天设置相符合。你可以通过@@DATEFIRST函数来检查第一天设置。 
 
       为了理解这些例子,我们先复习一下DATEDIFF和DATEADD函数。DATEDIFF函数计算两个日期之间的小时、天、周、月、年等时间间隔总数。DATEADD函数计算一个日期通过给时间间隔加减来获得一个新的日期。要了解更多的DATEDIFF和DATEADD函数以及时间间隔可以阅读微软联机帮助。 
 
       使用DATEDIFF和DATEADD函数来计算日期,和本来从当前日期转换到你需要的日期的考虑方法有点不同。你必须从时间间隔这个方面来考虑。比如,从当前日期到你要得到的日期之间有多少时间间隔,或者,从今天到某一天(比如1900-1-1)之间有多少时间间隔,等等。理解怎样着眼于时间间隔有助于你轻松的理解我的不同的日期计算例子。 
 
一个月的第一天 
 
       第一个例子,我将告诉你如何从当前日期去这个月的最后一天。请注意:这个例子以及这篇文章中的其他例子都将只使用DATEDIFF和DATEADD函数来计算我们想要的日期。每一个例子都将通过计算但前的时间间隔,然后进行加减来得到想要计算的日期。 
 
       这是计算一个月第一天的SQL  脚本: 
       SELECT  DATEADD(mm,  DATEDIFF(mm,0,getdate()),  0) 
 
       我们把这个语句分开来看看它是如何工作的。最核心的函数是getdate(),大部分人都知道这个是返回当前的日期和时间的函数。下一个执行的函数DATEDIFF(mm,0,getdate())是计算当前日期和“1900-01-01  00:00:00.000”这个日期之间的月数。记住:时期和时间变量和毫秒一样是从“1900-01-01  00:00:00.000”开始计算的。这就是为什么你可以在DATEDIFF函数中指定第一个时间表达式为“0”。下一个函数是DATEADD,增加当前日期到“1900-01-01”的月数。通过增加预定义的日期“1900-01-01”和当前日期的月数,我们可以获得这个月的第一天。另外,计算出来的日期的时间部分将会是“00:00:00.000”。 
 
       这个计算的技巧是先计算当前日期到“1900-01-01”的时间间隔数,然后把它加到“1900-01-01”上来获得特殊的日期,这个技巧可以用来计算很多不同的日期。下一个例子也是用这个技巧从当前日期来产生不同的日期。 
 
  
本周的星期一 
 
       这里我是用周(wk)的时间间隔来计算哪一天是本周的星期一。 
 
       SELECT  DATEADD(wk,  DATEDIFF(wk,0,getdate()),  0) 
 
一年的第一天 
 
       现在用年(yy)的时间间隔来显示这一年的第一天。 
 
       SELECT  DATEADD(yy,  DATEDIFF(yy,0,getdate()),  0) 
 
季度的第一天 
 
       假如你要计算这个季度的第一天,这个例子告诉你该如何做。 
 
       SELECT  DATEADD(qq,  DATEDIFF(qq,0,getdate()),  0) 
 
当天的半夜 
 
       曾经需要通过getdate()函数为了返回时间值截掉时间部分,就会考虑到当前日期是不是在半夜。假如这样,这个例子使用DATEDIFF和DATEADD函数来获得半夜的时间点。 
 
       SELECT  DATEADD(dd,  DATEDIFF(dd,0,getdate()),  0) 
 
深入DATEDIFF和DATEADD函数计算 
 
       你可以明白,通过使用简单的DATEDIFF和DATEADD函数计算,你可以发现很多不同的可能有意义的日期。 
 
       目前为止的所有例子只是仅仅计算当前的时间和“1900-01-01”之间的时间间隔数量,然后把它加到“1900-01-01”的时间间隔上来计算出日期。假定你修改时间间隔的数量,或者使用不同的时间间隔来调用DATEADD函数,或者减去时间间隔而不是增加,那么通过这些小的调整你可以发现和多不同的日期。 
 
       这里有四个例子使用另外一个DATEADD函数来计算最后一天来分别替换DATEADD函数前后两个时间间隔。 
 
上个月的最后一天 
 
       这是一个计算上个月最后一天的例子。它通过从一个月的最后一天这个例子上减去3毫秒来获得。有一点要记住,在Sql  Server中时间是精确到3毫秒。这就是为什么我需要减去3毫秒来获得我要的日期和时间。 
 
       SELECT  dateadd(ms,-3,DATEADD(mm,  DATEDIFF(mm,0,getdate()),  0)) 
 
       计算出来的日期的时间部分包含了一个Sql  Server可以记录的一天的最后时刻(“23:59:59:997”)的时间。 
 
去年的最后一天 
 
       连接上面的例子,为了要得到去年的最后一天,你需要在今年的第一天上减去3毫秒。 
 
       SELECT  dateadd(ms,-3,DATEADD(yy,  DATEDIFF(yy,0,getdate()),  0)) 
 
本月的最后一天 
 
       现在,为了获得本月的最后一天,我需要稍微修改一下获得上个月的最后一天的语句。修改需要给用DATEDIFF比较当前日期和“1900-01-01”返回的时间间隔上加1。通过加1个月,我计算出下个月的第一天,然后减去3毫秒,这样就计算出了这个月的最后一天。这是计算本月最后一天的SQL脚本。 
 
       SELECT  dateadd(ms,-3,DATEADD(mm,  DATEDIFF(m,0,getdate())+1,  0)) 
 
本年的最后一天 
 
       你现在应该掌握这个的做法,这是计算本年最后一天脚本 
 
       SELECT  dateadd(ms,-3,DATEADD(yy,  DATEDIFF(yy,0,getdate())+1,  0))。 
 
本月的第一个星期一 
 
       好了,现在是最后一个例子。这里我要计算这个月的第一个星期一。这是计算的脚本。 
 
         select  DATEADD(wk,  DATEDIFF(wk,0,                                                         
                               dateadd(dd,6-datepart(day,getdate()),getdate())       
                                                                                                 ),  0)                         
 
       在这个例子里,我使用了“本周的星期一”的脚本,并作了一点点修改。修改的部分是把原来脚本中“getdate()”部分替换成计算本月的第6天,在计算中用本月的第6天来替换当前日期使得计算可以获得这个月的第一个星期一。 
 
总结 
 
       我希望这些例子可以在你用DATEADD和DATEDIFF函数计算日期时给你一点启发。通过使用这个计算日期的时间间隔的数学方法,我发现为了显示两个日期之间间隔的有用历法是有价值的。注意,这只是计算出这些日期的一种方法。要牢记,还有很多方法可以得到相同的计算结果。假如你有其他的方法,那很不错,要是你没有,我希望这些例子可以给你一些启发,当你要用DATEADD和DATEDIFF函数计算你程序可能要用到的日期时。 
 
--------------------------------------------------------------- 
附录,其他日期处理方法 
 
1)去掉时分秒 
declare  @  datetime 
set  @  =  getdate()  --'2003-7-1  10:00:00' 
SELECT  @,DATEADD(day,  DATEDIFF(day,0,@),  0) 
 
2)显示星期几 
select  datename(weekday,getdate())   
 
3)如何取得某个月的天数 
declare  @m  int 
set  @m=2  --月份 
select    datediff(day,'2003-'+cast(@m  as  varchar)+'-15'  ,'2003-'+cast(@m+1    as  varchar)+'-15') 
另外,取得本月天数 
select    datediff(day,cast(month(GetDate())  as  varchar)+'-'+cast(month(GetDate())  as  varchar)+'-15'  ,cast(month(GetDate())  as  varchar)+'-'+cast(month(GetDate())+1    as  varchar)+'-15') 
或者使用计算本月的最后一天的脚本,然后用DAY函数区最后一天 
SELECT  Day(dateadd(ms,-3,DATEADD(mm,  DATEDIFF(m,0,getdate())+1,  0))) 
 
4)判断是否闰年: 
SELECT  case  day(dateadd(mm,  2,  dateadd(ms,-3,DATEADD(yy,  DATEDIFF(yy,0,getdate()),  0))))  when  28  then  '平年'  else  '闰年'  end 
或者 
select  case  datediff(day,datename(year,getdate())+'-02-01',dateadd(mm,1,datename(year,getdate())+'-02-01')) 
when  28  then  '平年'  else  '闰年'  end 
 
5)一个季度多少天 
declare  @m  tinyint,@time  smalldatetime 
select  @m=month(getdate()) 
select  @m=case  when  @m  between  1  and  3  then  1 
                       when  @m  between  4  and  6  then  4 
                       when  @m  between  7  and  9  then  7 
                       else  10  end 
select  @time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01' 
select  datediff(day,@time,dateadd(mm,3,@time)) 

FAST-LIO2:论文和算法解析 本文介绍了FAST-LIO2算法:一种快速、鲁棒、通用的激光雷达-惯性里程计框架。FAST-LIO2基于高效的紧密耦合迭代卡尔曼滤波器,具有两个关键的新颖之处,可实现快速,稳健和准确的激光雷达导航(和测绘)。第一种方法是直接将原始点注册到地图上然后更新地图,而不提取特征。这样可以利用环境中的细微特征,从而提高准确性。消除手工设计的特征提取模块,也使其能够适应不同扫描模式的新兴激光雷达; 阅读详情

相关推荐

LMX2820即时校准实战:从失锁到稳定锁频的完整指南

本文详细解析了LMX2820锁相芯片在高频段(11.3-22.6GHz)易出现随机失锁问题的根源,并提供了即时校准(InstCal)的完整实战指南。通过寄存器编程、Index例程和校准配置的关键步骤,确保从失锁到稳定锁频的高可靠性,大幅提升射频合成器在通信与测试测量应用中的性能。

bert9linguist的博客 958

SQL Server日期计算

通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。         在使用本文中的例子之前,你必须注意以下...

weixin_33713503的博客 545

基于Multisim的模电调幅发射机仿真设计

振荡器产生的高频信号的功率很小,所以有必要对高频信号进行功率放大,有利于信号的调制发射。缓冲电路将主振荡器和高频功放电路相隔离,以减小功放电路对主振荡器的影响。缓冲电路可以用射极跟随器电路来实现,其作用就是前后级的阻抗相互匹配,减小前后级的影响。总电路的仿真结果见下图:示波器1~4分别是主振荡器、缓冲电路、高频放大电路和调幅电路的输出波形。由于载波频率稳定度≤10-3,所以可以采用并联型改进电容反馈式三端振荡器(Seiler电路)谐振回路,滤除其他频率的成分,得到与载波(假设。(1)缓冲电路的设计与实现。

Eve223322的博客 4575

sql server中字符串类型的日期如何比较大小

日期数据在Sql Server数据库中不都是以日期类型保存的,如果在数据库中将保存日期的字段的数据类型设置为varchar,而你又需要对这个日期和另外一个日期进行比较,那么该怎么办呢?总结有以下方法 (1)方法一 这个方法很容易想到,就是纯粹地利用字符串来比较大小,比如有一个字段为adddate,其数据类型为varchar,要比较这个日期是不是大于某个日期,比如"2016-2-22",那么可以

ydm东方旭日的专栏 3万+

Win10和Ubantu16.04双系统下,卸载Ubantu

Win10和Ubantu16.04双系统下,卸载Ubantu 机器配置 华硕主板,英伟达显卡(这不是重点) Win10与Ubantu16.04均为UFFI分区(如果不知道这个也不需要在意,一般默认的都是这样,鸵鸟原则) 清除Ubantu系统 一般按照常规的方法来删除Ubantu,都是直接将磁盘管理器里面的关于Ubantu的磁盘清空,但是还会留下一个UFFI分区,如果不进行删除的话,开机时候还是会有...

qq_33289694的博客 391

一文读懂无人机AI识别算法,原理、技术、应用

本文详细介绍了无人机识别算法的工作原理、技术优势以及在多个行业的应用前景,展现了其在提升安全监控、资源管理和应急响应中的关键作用。尽管无人机识别算法在多个领域展现出巨大潜力,但仍面临技术挑战,如算法的准确性、数据的实时处理能力以及对复杂环境的适应性。4. 消防与城市管理: 无人机识别算法在消防和城市管理中的应用,为相关部门提供了及时的信息支持,提升了应急处置能力和城市管理水平。1. 公安监控: 无人机识别算法在公安领域的应用,可以实时识别犯罪嫌疑人和违法行为,有效提升城市治安管理的智能化水平。

foiadrone的博客 1847

sybase函数用法之DateAdd

弄几个例子:测试环境:sybase12.5DateAdd函数 返回一个时间。语法DateAdd(interval, number, date)DateAdd 函数语法中有下列命名参数:部分 描述 interval 必要。字符串表达式,是所要加上去的时间单位。 number 必要。

shimly2010的专栏 1万+

Oracle迁移至华为GaussDB SQL语法和存储过程转换

在将Oracle数据库迁移至GaussDB时,SQL语法和存储过程的转换是确保应用程序正常运行和数据完整性的关键环节。由于两者在数据类型、函数、过程语言等方面存在差异,必须系统化地进行转换和测试。正则表达式脚本:批量替换常见的语法差异。SQL解析工具:解析SQL脚本,生成GaussDB兼容的语法。代码审查工具:自动检查转换后的代码,确保语法和逻辑正确。将Oracle迁移至GaussDB涉及到SQL语法和存储过程的全面转换。通过系统化的转换步骤、使用合适的工具并结合手动调整,可以确保迁移过程的顺利进行。

weixin_38428874的博客 2397

sql小于当前时间

时间字段名 <= NOW()

qq_60547244的博客 5442

【OpenClaw从入门到精通】第66篇:Skill开发进阶——从零打造一个跨境选品Skill(附完整代码)(2026实测版)

2026年跨境电商效率革命中,AI Agent已成为选品核心工具,但通用Skill难以适配个性化需求。本文以“跨境选品”为实战场景,从零讲解OpenClaw Skill的完整开发流程:从需求分析、目录结构设计、SKILL.md编写,到Python脚本开发(含1688商品搜索、销量分析、竞品对比核心功能),再到调试测试、安全审计与ClawHub发布。文中提供可直接复制的完整代码,覆盖多平台适配、异常处理、数据可视化等进阶功能,同时解决API调用、链接失效等实际问题。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 567

166、Sim2Real中的强化学习:域随机化与鲁棒策略

第二,训练时监控每个随机化维度对策略梯度的贡献,如果某个维度对loss的方差贡献极小,说明策略已经忽略它了,要么加大范围,要么删掉。第四,如果条件允许,用真实数据来校准随机化分布——采集真机上的传感器数据,拟合出参数分布,再把这个分布作为随机化的采样依据,这比拍脑袋定范围靠谱得多。动态随机化是很多人忽略的维度。域随机化的核心思想说白了就一句话:别去精确建模现实,而是把仿真环境本身变成一个随机分布的集合,让策略在“各种乱七八糟的物理参数”里都见过世面,这样到了真机上,不管现实落在哪个参数区间,策略都能兜住。

sundong_81的博客 27

MS SQL Server中日期计算[收藏]

        通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。          在使用本文中的例子之

573

大模型安全研究论文整理 2026年版

知乎博主小红书博主GitHub数据集参考: 大模型越狱指令 (harmful questions) 数据集整理会思考的大模型更不听话,我的豆包失控了…让QwQ思考模型-不思考的小技巧qwen3的致命幻觉!大模型微调所有大模型都在讨好人类不要思考过程,推理模型能力能够更强丨UC伯克利等最新研究o3/o4-mini幻觉暴增2-3倍!OpenAI官方承认暂无法解释原因UC伯克利:让推理模型少思考,准确率反而更高了!一句话让DeepSeek思考停不下来,北大团队:这是针对AI的DDoS攻击慢思考准确率反降30%!普

CSPhD-winston的博客 2019

SQL Server日期计算(收藏) 选择自 xpilot 的 Blog

通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。         在使用本文中的例子之前,你必须注意以下

SZHHP的专栏 884

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

SQL Server各种日期计算方法(收藏)

常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。   在使用本文中的例子之前,你必须注意以下的问题。大...

weixin_30556161的博客 67

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

[转]SQL Server日期计算(收藏)

通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。         在使用本文中的例子之前,你必须注意以下

ToMKai 's World 694

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【转帖】SQL Server各种日期计算方法(收藏)

作者:Sman 日期:2005-10-22通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文 章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。

刘阳照的专栏 664

SQL Server日期计算[收藏]

a.一个月的第一天SELECTDATEADD(mm,DATEDIFF(mm,0,getdate()),0)b.本周的星期一SELECTDATEADD(wk,DATEDIFF(wk,0,getdate()),0)c.一年的第一天SELECTDATEADD(yy,DATEDIFF(yy,0,getdate()),0)d.季度的第一天SELEC...

weixin_30566111的博客 153

标 题:[转帖]SQL Server日期计算(收藏)

分类:数据库相关 关键字 :日期 相关:作者:未知来源:xpilot 的 Blog 引用:[0]http://goaler.xicp.net/TrackBack.asp?LogID=508 文字:【大 中 小】【把这篇日志推荐给朋友】 通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一...

weixin_30872671的博客 65

精典的SQL语句,推荐收藏

在网上经常转,常常看到有些人为了求得某些SQL语句而焦头烂额,现在我特别把自己收藏的一些比较精典的SQL拿出来和大家分享一下1. 行列转换--普通假设有张学生成绩表(CJ)如下Name    Subject     Result张三    语文        80张三    数学        90张三    物理        85李四    语文        85李四    数学      

Finaldata的专栏 1688
上一篇: 如何去追自己喜欢的MM?-----------女生写的
下一篇: SQL Server联机丛书:存储过程及其创建
Bulemaple
博客等级 码龄22年 1粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值