Guest User

Untitled

a guest
Mar 17th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. SELECT DATEDIFF(MONTH, '2009-04-16', '2009-05-15')
  2.  
  3. 1
  4.  
  5. CREATE FUNCTION FullMonthsSeparation
  6. (
  7. @DateA DATETIME,
  8. @DateB DATETIME
  9. )
  10. RETURNS INT
  11. AS
  12. BEGIN
  13. DECLARE @Result INT
  14.  
  15. DECLARE @DateX DATETIME
  16. DECLARE @DateY DATETIME
  17.  
  18. IF(@DateA < @DateB)
  19. BEGIN
  20. SET @DateX = @DateA
  21. SET @DateY = @DateB
  22. END
  23. ELSE
  24. BEGIN
  25. SET @DateX = @DateB
  26. SET @DateY = @DateA
  27. END
  28.  
  29. SET @Result = (
  30. SELECT
  31. CASE
  32. WHEN DATEPART(DAY, @DateX) > DATEPART(DAY, @DateY)
  33. THEN DATEDIFF(MONTH, @DateX, @DateY) - 1
  34. ELSE DATEDIFF(MONTH, @DateX, @DateY)
  35. END
  36. )
  37.  
  38. RETURN @Result
  39. END
  40. GO
  41.  
  42. SELECT dbo.FullMonthsSeparation('2009-04-16', '2009-05-15') as MonthSep -- =0
  43. SELECT dbo.FullMonthsSeparation('2009-04-16', '2009-05-16') as MonthSep -- =1
  44. SELECT dbo.FullMonthsSeparation('2009-04-16', '2009-06-16') as MonthSep -- =2
  45.  
  46. SELECT DATEDIFF(DAY, '2009-04-16', '2009-05-15')/30
  47. , DATEDIFF(DAY, '2009-04-16', '2009-05-16')/30
  48. , DATEDIFF(DAY, '2009-04-16', '2009-06-16')/30
  49.  
  50. months_between(to_date ('2009/05/15', 'yyyy/mm/dd'),
  51. to_date ('2009/04/16', 'yyyy/mm/dd'))
  52.  
  53. round(months_between(to_date ('2009/05/15', 'yyyy/mm/dd'),
  54. to_date ('2009/04/16', 'yyyy/mm/dd')))
  55.  
  56. select case when DATEPART(D,End_dATE) >=DATEPART(D,sTAR_dATE)
  57. THEN ( case when DATEPART(M,End_dATE) = DATEPART(M,sTAR_dATE) AND DATEPART(YYYY,End_dATE) = DATEPART(YYYY,sTAR_dATE)
  58. THEN 0 ELSE DATEDIFF(M,sTAR_dATE,End_dATE)END )
  59. ELSE DATEDIFF(M,sTAR_dATE,End_dATE)-1 END
  60.  
  61. SELECT 12 * (YEAR(end_date) - YEAR(start_date)) +
  62. ((MONTH(end_date) - MONTH(start_date))) +
  63. SIGN(DAY(end_date) / DAY(start_date));
  64.  
  65. Declare @Start DateTime
  66. Declare @End DateTime
  67.  
  68. Set @Start = '11/1/07'
  69. Set @End = '2/29/08'
  70.  
  71. Select DateDiff(Month, @Start, @End + 1)
Add Comment
Please, Sign In to add comment