[英]Get year and month from SQL
我想知道如何將年份和月份輸入數據庫。 例如,假設它是2011年8月。我需要的輸出是這樣的: CAB 11 08 001
(CAB +年+月+跟蹤編號中的當前編號。)
這是我的SQL:
ALTER PROCEDURE [dbo].[generateTrackNo] AS
Declare @tempYear VARCHAR(5),@tempMonth VARCHAR(5)
Set @tempYear = Year(GetDate())
Set @tempMonth = Month(GetDate())
SELECT 'CAB' + Right(Cast(Year(GetDate()) as varchar(10)),2)+ Right(Cast(Month(GetDate()) as varchar(10)),2) + Right('000000'+ Cast(CurrentNo as varchar(10)), 5) from tblTrackNo where GenYear = @tempYear
--UPDATE tblTrackNo SET CurrentNo = CurrentNo + 1 where GenYear = @tempYear
此輸出是CAB1180035
,但是我需要CAB1108035
。 我需要在本月中將零(0)08設置為此類。
在我的表格中,我只有genYear和CurrentNo。是否需要為MONTH添加另一列?
好像您要為YEAR,MONTH等創建單獨的列。
我知道的大多數(全部?)DBMS具有Date
類型。 用它。 他們在其中添加了許多有用的內容,例如接受不同格式的日期輸入,並以幾乎您能想到的任何格式將它們作為輸出提供。
例如,如果您在Oracle中具有Date
類型的DT
列,則可以將month輸出為
SELECT TO_CHAR(DT, "MM") FROM MYTABLE;
並且月份將始終顯示為兩位數(01、02,... 12)
SELECT
'CAB'
+ RIGHT(YEAR(GetDate()),2)
+ RIGHT('0' + CONVERT(VARCHAR, MONTH(GetDate())),2)
+ Right('00000' + Cast(CurrentNo as varchar(10)), 5)
那可能行得通..
使用您的方法\\邏輯
Right('0' + Cast(Month(GetDate()) as varchar(10)),2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.