自己一个人在家,没什么事情做,突然想起很久没有写东西了,于是.............

   经常在对两个日期计算时,不仅想得到单独的年月日,想得到其详细信息,即将日期结果精确到天,下面上一个function和一个procedure 用于完成这个功能。

   第一个函数版

   

create function [dbo].[GetYearMonthDayFun](
@begin datetime ,
@end datetime)
returns varchar(50)
as
begin
/*
* 功能:计算两个日期之差           *
* 作者:charry0110                 *
* 描述:返回年月日,结果精确到天,参数为getdate()时计算出生信息*
*/
declare @Ageyear int
declare @Agemonth int
declare @Ageday int
set @Ageyear =datediff(year, @begin, @end)-
case when dateadd(year, datediff(year, @begin, @end), @begin)> @end
then 1 else 0 end
set @Agemonth=ltrim(datediff(month, @begin, @end)-
case when dateadd(month,datediff(month, @begin, @end),@begin)> @end
then 1 else 0 end)-12*@Ageyear
if(day(@begin)<day(@end) or day(@begin)=day(@end))
set @Ageday=day(@end)-day(@begin)
else
set @Ageday=datediff(day,(ltrim(year(@end))+'-'
+ltrim(month(dateadd(mm,-1,@end)))+'-'+ltrim(day(@begin))),
(ltrim(year(@end))+'-'+ltrim(month(@end))+'-'+ltrim(day(@end))))
return ltrim(@Ageyear)+'年'+ltrim(@Agemonth)+'月'+ltrim(@Ageday)+'天'
/*
--示例1
select dbo.GetYearMonthDayFun('2008-6-21',getdate())
--示例2
select dbo.GetYearMonthDayFun(crdate,refdate) from sysobjects
--示例3
select dbo.GetYearMonthDayFun(crdate,getdate()) from sysobjects
*/
end

   

   第二个存储过程版

   

create procedure [dbo].[GetYearMonthDayPro]
(
@begin datetime ,
@end datetime
)
as
begin
/*
* 功能:计算两个日期之差           *
* 作者:charry0110                 *
* 描述:返回年月日,结果精确到天,参数为getdate()时计算出生信息*
*/
declare @Ageyear int
declare @Agemonth int
declare @Ageday int
set @Ageyear =datediff(year, @begin, @end)-
case when dateadd(year, datediff(year, @begin, @end), @begin)> @end
then 1 else 0 end
set @Agemonth=ltrim(datediff(month, @begin, @end)-
case when dateadd(month,datediff(month, @begin, @end),@begin)> @end
then 1 else 0 end)-12*@Ageyear
if(day(@begin)<day(@end) or day(@begin)=day(@end))
set @Ageday=day(@end)-day(@begin)
else
set @Ageday=datediff(day,(ltrim(year(@end))+'-'
+ltrim(month(dateadd(mm,-1,@end)))+'-'+ltrim(day(@begin))),
(ltrim(year(@end))+'-'+ltrim(month(@end))+'-'+ltrim(day(@end))))
select ltrim(@Ageyear)+'年'+ltrim(@Agemonth)+'月'+ltrim(@Ageday)+'天'
/*
--示例1
exec GetYearMonthDayPro '2008-6-21','2008-7-21'
*/
end

SQL 计算日期之差,精确到天相关推荐

  1. 日期函数DATEDIFF() 计算日期之差

    datediff()函数返回两个日期之间的时间. detediff(datepart,startdate.endddate) satrtdate和enddate是你要计算的开始时间和截止时间 date ...

  2. sql计算日期时间差

    方法一: SELECT TIMESTAMPDIFF(DAY,'2021-11-28','2021-10-19');---计算天数(结束日期在前) SELECT TIMESTAMPDIFF(Month, ...

  3. JS 计算日期天数差

    function dayDiffer(startDate,endDate){console.info((endDate.getTime - startDate.getTime())/(24*60*60 ...

  4. JS计算日期天数之差

    做项目的时候碰到一个问题,就是要计算2个日期之间的天数之差,于是上网搜索了一下,找到了解决方案,代码如下: //计算日期之差 function getDays(strDateStart,strDate ...

  5. JS判断两个日期的差或者判断两个日期的大小

    1.判断两个日期的差: /**计算日期天数差的函数-hanliwei-2013-03-14*/ function DateDiff(sDate1,sDate2) { //sDate1和sDate2的格 ...

  6. mysql timestamp 差值_SQL计算timestamp的差值实例分享

    本文主要介绍了SQL计算timestamp的差值的方法的相关资料,需要的朋友可以参考下,希望能帮助到大家. SQL计算timestamp的差值的方法 概述 有时候我们需要按照时间找出某些记录,比如说: ...

  7. mysql中日期怎样求差_在Sql语句中怎样计算出两个日期的差值

    展开全部 sql语句中计算两个日期的差值用32313133353236313431303231363533e4b893e5b19e31333365643662datediff函数. 工具:sqlser ...

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

    分    类:数据库相关 关键字 :日期 相    关:作者:未知    来源:xpilot 的 Blog 引    用:[0]http://goaler.xicp.net/TrackBack.asp ...

  9. SQL Server日期计算

    通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天.你们大部分人大概都知道怎样把日期进行分割(年.月.日等),然后仅仅用分割出来的年.月.日等放在几个函 ...

最新文章

  1. Python手动实现kmeans聚类和调用sklearn实现
  2. eclipse中插件修改svn用户名密码
  3. mipi 调试经验【转】
  4. jq怎么回到顶部和回到尾部_回到学校系列为孩子们提供开放资源
  5. 物联网将如何改善社会运行效率?
  6. CentOS7中rpm,yum软件安装命令
  7. 四十三、配置防盗链、访问控制Directory、访问控制FilesMatch
  8. Win10 Terminal 背景图片设置
  9. 高校成绩管理数据库系统
  10. 推荐两款github敏感信息搜集工具(gsil、gshark)
  11. 绿幕抠图在手机上使用认识.
  12. 鸡年关于鸡的一些歇后语
  13. 认识CAPWAP隧道及其应用
  14. 【KGAT】Knowledge Graph Attention Network for Recommendation
  15. 02 推荐算法-(01) Model-Based 协同过滤算法
  16. 嵌入式开发<单片机软件调试>
  17. 微信小程序---家庭记账本开发(四)
  18. psp 6.61降级到_将电视挤到您的PSP上
  19. 如何在顶层使用await 【top level await】
  20. Mock.js的简单使用

热门文章

  1. 解决python3.7.2中pyinstall打包成exe文件工具的问题
  2. 天地图地图瓦片下载器
  3. 中国各地强化H7N9禽流感疫情防控工作
  4. 动态html动画是什么格式,gif动态图片制作视频格式文件
  5. 虚拟化 VMware ESXi(一)
  6. 服务器CPU使用率/负载状态达100%如何处理
  7. dell服务器 安装 Linux,DELL服务器安装linux系统
  8. 《悠悠岁月》安妮·埃尔诺
  9. 每天成长一点---WEB前端学习入门笔记
  10. kerberods挖矿病毒查杀及分析(crontab 挖矿 curl -fsSL https://pastebin.com/raw)