我需要在輸入時,爲了獲得前一個月和一年。所以,如果用戶鍵入201412,那麼它應該返回201411.如果他們輸入201501,那麼它應該返回201401.sql中得到比上月
-1
A
回答
0
的快速方法在SQL Server數據庫上執行此操作將從字符串中創建日期元素,將其轉換爲日期類型,然後使用函數dateadd並添加-1個月(如果您願意,減去一個月)
像這樣:
select DATEADD(MONTH,-1,CAST(LEFT(201401,4)+'-'+RIGHT(201401,2)+'-01' AS DATE))
分解的步驟:
- 通過選擇4個最左邊的字符拿到年終
- 通過選擇2個最右邊的字符
- 添加分隔獲取月「 - 」和01與前兩個要素得到一個有效格式的字符串要轉換
- 將字符串到datetype啓用日期操作
- 使用DateAdd函數添加-1個月至該日期元素
- 手指交叉可用的輸入是不會破壞你的代碼
0
在SQL Server
DECLARE @dateAsNumber VARCHAR(8);
SET @dateAsNumber = '198705';
DECLARE @DateConvertedFromNumber DATETIME;
SELECT @DateConvertedFromNumber = CONVERT (DATETIME, CONVERT(CHAR(8), @dateAsNumber
+ '01'))
SELECT LEFT(CONVERT(VARCHAR, DATEADD(YEAR, -1,
@DateConvertedFromNumber), 112),
6) AS 'Year Before'
SELECT LEFT(CONVERT(VARCHAR, DATEADD(MONTH, -1,
@DateConvertedFromNumber), 112),
6) AS 'Month Before'
+0
謝謝。這真的有幫助! –
+0
沒有問題!不要忘記標記爲答案;) –
+0
我該怎麼做 –
相關問題
- 1. 我如何能在PHP中得到比上月名
- 2. 如何獲得比上月和去年
- 3. sql得到月份的計數
- 4. 每月的Sql日比較
- 5. 比較年月在SQL
- 6. SQL得到每個月的第一天當月
- 7. 比較當前月份和列上的上個月的行,SQL Server 2012
- 8. 獲得上個月的所有記錄在SQL Server中對於當月
- 9. 從上個月SQL
- 10. 得到兩月之間的月日結束的列表中的SQL Server
- 11. SQL - 拿到上個月的數據
- 12. 的Oracle SQL語句中得到個月的兩個日期
- 13. 將本月的銷售額與上個月進行比較 - 功能 - T-SQL
- 14. 如何獲得與上個月相比最大的差異?
- 15. 最優化的方式來獲得所有記錄比上月
- 16. 與上個月相比,MySQL月份總計月數更多
- 17. Oracle SQL月完成百分比公式
- 18. SQL Date_Format月份數到月份名稱
- 19. 今天得到NSDate,昨天,本週,上週,本月,上個月...變量
- 20. SQL每月加入和每月總計百分比
- 21. MySQL查詢獲得當月和上月的數量來獲得增長的百分比
- 22. SQL找回較上月
- 23. 月對月數據比較
- 24. 需要上個月得到的只有3個字母JUL在SQL
- 25. 選擇所有記錄中,其中加入比一個月前不到一個月前多,得分X
- 26. SQL獲得每月和每週數據
- 27. 如何在sql中獲得百分比?
- 28. LINQ到SQL - 開始月份
- 29. PHP的strtotime:獲取比上月
- 30. 與上個月相比的平均值
您正在使用哪個數據庫管理系統? Postgres的?甲骨文? –
他們在哪裏打字? – CathalMF
請閱讀如何問問http://stackoverflow.com/help/how-to-ask以改善您的問題。我們需要你的結構更具體,並提供給我們一個例子http://stackoverflow.com/help/mcve – davejal