簡體   English   中英

從SQL獲取年份和月份

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM