-1

「UNK-JAN-2015」これは私の日付値です。UNK は不明な値を示します。今、私はそれから1か月だけ取得する必要があります。見つける方法はありますか……。

4

5 に答える 5

3
SELECT 
RIGHT(DateString, 4) [Year], 
LEFT(RIGHT(DateString, 8), 3) [Month] 
FROM YourTable
于 2015-03-10T10:36:47.267 に答える
0

実際の月の値を取得するには、文字列の月の部分を構成する 3 文字を単純に取得するのではなく、文字列操作を使用して日付に変換し、そこから月を抽出できます。

DECLARE @val NVARCHAR(15) = 'UNK-JAN-2015'

SELECT  CONVERT(DATETIME, RIGHT(@val, 4) + '-' + SUBSTRING(@val, 5, 3)) AS TheDate,
    MONTH(CONVERT(DATETIME, RIGHT(@val, 4) + '-' + SUBSTRING(@val, 5, 3))) MonthNumber,
    DATENAME(MONTH,
           CONVERT(DATETIME, RIGHT(@val, 4) + '-' + SUBSTRING(@val, 5, 3))) [MonthName]

出力:

TheDate                   MonthNumber   MonthName
2015-01-01 00:00:00.000   1             January

これは、値が常に同じ形式であることを前提としていますXXX-MMM-YYYY(XXX はプレフィックスです)。

于 2015-03-10T11:11:17.890 に答える