SQL SERVER:获取两个date之间的总天数

我试图得到两天之间的总天数:

1/1/2011 3/1/2011 RETURN 62 

在SQL Server中可以做到吗?

7 Solutions collect form web for “SQL SERVER:获取两个date之间的总天数”

PRINT DATEDIFF(DAY, '1/1/2011', '3/1/2011')会给你你以后。

这给出了两个date之间跨越午夜边界的次数。 如果您在计数中包含两个date,您可以决定添加一个,如果您不想包含date,则可以减去一个。

SQL Server DateDiff

 DECLARE @startdate datetime2 = '2007-05-05 12:10:09.3312722'; DECLARE @enddate datetime2 = '2009-05-04 12:10:09.3312722'; SELECT DATEDIFF(day, @startdate, @enddate); 

你可以试试这个MSDN链接

 DATEDIFF ( datepart , startdate , enddate ) SELECT DATEDIFF(DAY, '1/1/2011', '3/1/2011') 

请参阅DateDiff :

 DECLARE @startdate date = '2011/1/1' DECLARE @enddate date = '2011/3/1' SELECT DATEDIFF(day, @startdate, @enddate) 

另一种date格式

 select datediff(day,'20110101','20110301') 
 SELECT DATEDIFF(day, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000'); 

如果你想做同样的事情存储过程,那么你需要申请下面的代码。

 select (datediff(dd,'+CHAR(39)+ convert(varchar(10),@FromDate ,101)+ CHAR(39)+','+CHAR(39)+ convert(varchar(10),@ToDate ,101) + CHAR(39) +')) Daysdiff 

@fromdate和@todate是SP的参数

  • 如何将date时间转换为时间
  • 什么是使用SQL视图的好理由?
  • 什么是最好的方式来获得SQL 2008中的最后一个字符索引
  • 在variables中是否存在StartsWith或Contains in t sql?
  • 如何在我的列上创build唯一约束(SQL Server 2008 R2)?
  • 如何findSQL Server运行端口?
  • 无法在sql server中删除和创build数据库
  • 重命名SQL Server 2008列
  • SQL Server查询来查找数据库中所有用户的所有权限/访问权限
  • Entity Framework / SQL2008 - 如何自动更新实体的LastModified字段?
  • 如何为2000和2005年的数据库创buildSQL Server 2008的链接服务器