SQL Server 2000 の使用
日付のように20120101, 20120201, 20120301...
フォーマットはyyyymmdd
2012 年 1 月、2012 年 2 月、2012 年 3 月のような日付から月と年を表示したい...
期待される出力
01/2012
02/2012
03/2012
私はほしくない1/2012, 2/2012, 3/2012...
誰でも私にアイデアやクエリの助けを与えることができます....
SQL Server 2000 の使用
日付のように20120101, 20120201, 20120301...
フォーマットはyyyymmdd
2012 年 1 月、2012 年 2 月、2012 年 3 月のような日付から月と年を表示したい...
期待される出力
01/2012
02/2012
03/2012
私はほしくない1/2012, 2/2012, 3/2012...
誰でも私にアイデアやクエリの助けを与えることができます....
次のようなものを使用できます。
DECLARE @input VARCHAR(20)
SET @input = '20120101'
-- convert the 20120101 to a DATETIME
DECLARE @thedate DATETIME
SELECT @thedate = CONVERT(DATETIME, @input, 112)
-- reformat that DATETIME to your needs
DECLARE @output VARCHAR(20)
SET @output = RIGHT('00' + CAST(DATEPART(MONTH, @thedate) AS VARCHAR(2)), 2) +
'/' + CAST(DATEPART(YEAR, @thedate) AS VARCHAR(4))
SELECT @output
この機能をユーザー定義関数に「隠す」ことで、コード内でより簡単に使用できるようにすることができます。
CREATE FUNCTION dbo.MonthYearFromDate (@input VARCHAR(20))
RETURNS VARCHAR(20)
AS BEGIN
DECLARE @thedate DATETIME
SELECT @thedate = CONVERT(DATETIME, @input, 112)
DECLARE @output VARCHAR(20)
SET @output = RIGHT('00' + CAST(DATEPART(MONTH, @thedate) AS VARCHAR(2)), 2) + '/' + CAST(DATEPART(YEAR, @thedate) AS VARCHAR(4))
RETURN @output
END
そして、これを次のように呼び出すことができます:
SELECT dbo.MonthYearFromDate('20120515')
出力を取得します
05/2012
SELECT CAST(datepart(month,getdate()) AS CHAR) + '/' + CAST(datepart(year,getdate()) AS CHAR)
関数 getdate() の代わりに、日付フィールドが必要です。
SUBSTRING 関数を見てください http://msdn.microsoft.com/en-us/library/ms187748.aspx
日付を DATETIME として保存することも検討する必要があります (VARCHAR を使用していると思いますか?)
extract() 関数で検索します。それはあなたの問題を解決します。