p_name
フォームに月のデータを含むデータベース列がありますMMM-YY
(「JAN-11」など)。タイプvarchar
です。このデータの前月 (例では「12 月 10 日」) を見つけるにはどうすればよいですか?
質問する
148 次
2 に答える
3
SQL Server を使用していると仮定します。
オブジェクトに変換JAN-11
し、datetime
1 か月を減算してから、文字列形式に変換し直します。
declare @date nvarchar(10) = 'JAN-11'
declare @dt datetime = '1-' + @date --Converts to datetime
SET @dt = DATEADD(m, -1, @dt) --Subtracts 1 month
RETURN UPPER(REPLACE(RIGHT(CONVERT(nvarchar(9), @dt, 6), 6), ' ', '-'))
--Returns "DEC-10"
次に、このロジックをUser defined functionに入れ、次のように呼び出すことができます。
SELECT dbo.PreviousMonth("JAN-11")
于 2012-08-14T12:16:48.570 に答える
1
Declare @pramDate varchar(10)
set @pramDate = '01/05/2012'
SELECT UPPER(LEFT(DateName( month,DATEADD(mm, DATEDIFF(mm, 0, CONVERT(datetime,@pramDate)) - 1, 0)),3)) +
'-' + substring(DateName( Year, CONVERT(datetime,@pramDate) ) ,3,4)
例を参照するだけで、探しているものが得られます
于 2012-08-14T12:16:33.780 に答える