SQL Server中的DateDiff函数问题

vmb

我在寻找月份的确切日期差异时遇到了一个问题。

我的要求就像

 difference in months between two dates in 2015-01-25 00:00:00.000 and  2015-04-25 00:00:00.000   should be 3 

 difference in months between two dates 2015-01-25 00:00:00.000 and  2015-04-26 00:00:00.000   should be > 3 


   SELECT DATEDIFF(MONTH, '2015-01-25 00:00:00.000', '2015-04-28 00:00:00.000')

如果使用DATEDIFF函数,则以上两个示例将返回相同的值3。即SELECT DATEDIFF(MONTH,'2015-01-25 25:00:00:00.000','2015-04- 26 00:00:00.000')是3。但是我需要大于3的结果

我如何使用单个选择查询实现以上要求。

您需要计算月份,然后需要将开始日期提前月份数并计算天数,如下所示:

SQL小提琴

MS SQL Server 2008架构设置

查询1

declare @f datetime, @t datetime
select @f='2015-01-25 00:00:00.000', @t='2015-04-28 00:00:00.000'
SELECT DATEDIFF(MONTH, @f, @t) as m, 
datediff(d, dateadd(month, DATEDIFF(MONTH, @f, @t), @f), @t) as d,
DATEDIFF(MONTH, @f, @t) + convert(float, datediff(d, dateadd(month, DATEDIFF(MONTH, @f, @t), @f), @t)) / 30.0 as md

结果

| M | D |  MD |
|---|---|-----|
| 3 | 3 | 3.1 |

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL Server中的DateDiff / Nb问题

来自分类Dev

根据时间在SQL Server中更改DATEDIFF函数的结果

来自分类Dev

SQL Server如何计算DATEDIFF函数?

来自分类Dev

DATEDIFF 函数导致 SQL Server 2016 溢出

来自分类Dev

SQL DATEDIFF 函数

来自分类Dev

SQL Server:使用MILLISECOND时,datediff函数导致溢出

来自分类Dev

Visual FoxPro9:datediff的替代方法SQL Server函数?

来自分类Dev

SQL Server DateDiff

来自分类Dev

SQL Server:上周的datediff

来自分类Dev

SQL Server中具有相同列的Logtable日期的DateDiff

来自分类Dev

DATEDIFF SQL Server 2016 JSON

来自分类Dev

SQL Server DateDiff()与MySQL TimestampDiff()

来自分类Dev

SQL Server:DATEDIFF不准确

来自分类Dev

整个表的SQL Server Datediff

来自分类Dev

SQL Server中的串联问题

来自分类Dev

SQL Server中的DateTime问题

来自分类Dev

SQL Server中的IN条件问题

来自分类Dev

SQL Server中的串联问题

来自分类Dev

SQL Server中的投放问题

来自分类Dev

SQL Server窗口函数实现问题

来自分类Dev

SQL Server中用户定义函数的问题

来自分类Dev

Sql Server - 帮助 Dateadd 函数(转换问题)

来自分类Dev

在SQL Server中创建函数?

来自分类Dev

SQL Server 中的转换函数

来自分类Dev

SQL Server函数中的逻辑问题用于处理搜索表单提交和返回表值

来自分类Dev

SQL Server,DATEDIFF错误,日期字段的格式?

来自分类Dev

在SQL Server中计算DATEDIFF(月)

来自分类Dev

SQL Server DATEDIFF 导致日比较溢出

来自分类Dev

SQL Server 2012中的日期转换问题