从SQL获取年份和月份
问题描述:
我想知道如何将年份和月份存入我的数据库。例如,假设这是2011年8月,我需要的是这样的输出:CAB 11 08 001
(。CAB +年+月+ CURRENT NO追踪数)从SQL获取年份和月份
这是我的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和当前编号我是否需要为MONTH添加另一列?
答
它看起来像你年,月作出独立柱等
大多数(所有?)的DBMS我所知道的有Date
类型。用它。他们投入了大量有用的东西,比如接受不同格式的日期输入,并以几乎任何您能想到的格式将它们输出为输出。
例如,如果你在Oracle中有Date
类型的DT
列,可以输出每月
SELECT TO_CHAR(DT, "MM") FROM MYTABLE;
和本月将始终显示为2个位数(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)
这种格式通常在客户端代码(在vb.net端)更好地完成,而不是在sql端存储或计算格式化值。 –