2014-06-17 43 views
-2

我有一個表有PlanTotal(多少個計劃),PlanStartDate(計劃的開始日期)和PlanInstallment列,它告訴我該計劃剩餘的每月支付。函數來計算月末在sql

我需要什麼編碼摸出

  1. 該計劃將結束的日期和

  2. 多少計劃是由於今天的日期之後完成?

我還需要因素的PlanStartDate在數值不datetime,所以需要在代碼以及這種轉換。

任何幫助/建議表示讚賞!

+1

您正在處理哪個數據庫並提供一些示例數據。 –

+1

這非常含糊。你甚至不告訴我們計劃應該是什麼。你有什麼嘗試?你遇到什麼具體問題?我們必須猜測嗎? – Frazz

+0

你是否告訴程序員或DBA你的請求;也許他們可以爲您提供技術解決方案;但他們可能會希望你給他們更多關於你想要他們寫什麼的細節。 –

回答

0

這裏有很多格式化日期的方法。我以GetDate()爲例。

DECLARE @NumericDate AS INT 

SET @NumericDate = CAST(CONVERT(CHAR(10),GETDATE(),112) AS INT) 

SELECT GETDATE() Today, 
     CONVERT(INT,GETDATE(),112) DateInt, 
     CAST(CONVERT(CHAR(10),GETDATE(),112) AS INT) DateNumeric, 
     YEAR(GETDATE())*10000 + MONTH(GETDATE())*100 + DAY(GETDATE()) AS DateNumeric_V2, 
     CONVERT(CHAR(10),GETDATE(),121) DateChar, 
     DATEADD(day,DAY(GETDATE())*-1,DATEADD(MONTH,1,GETDATE())) AS LastDayOfCurrentMonth, 
     SUBSTRING(CAST(@NumericDate AS CHAR(8)),1,4) 
     + '-' + SUBSTRING(CAST(@NumericDate AS CHAR(8)),5,2) 
     + '-' + SUBSTRING(CAST(@NumericDate AS CHAR(8)),7,2) AS NumericDate_2_String 

而對於結束日期計算你有DATEADD()

DECLARE @PlanInstallment as int 
DECLARE @PlanStartDate AS INT 

SET @PlanInstallment = 4 
SET @PlanStartDate = 20140317 

SELECT @PlanStartDate AS PlanStartDate, 
     DATEADD(MONTH,@PlanInstallment,GETDATE()) AS PlanEndDate 

因此與2個查詢的搭配,你應該能夠做任何你想要的。