NUMBERS
列と列から月と会計年度の差を計算することを任されていSHIP_DATES
ます。計算前のNUMBERS
列 ( NUMBER_MONTH
) と ( )の文字列から日付または時刻を変換するのに問題があります。NUMBER_FY
誰か見てくれませんか?基本的に、私が抱えている問題は、SHIP_DATE_MONTH
マイナスNUMBER_MONTH
とSHIP_DATE_FY
マイナスを取ることができないことNUMBER_FY
です。
列
NUMBERS
はvarchar
です。としてフォーマットされますSSSYYMMFFFFFF
。SSS
店舗駅です。YY
は会計年度、MM
は月、FFFFFF
周波数です
列
SHIP_DATES
はdatetime
です。列
ID
はintです。
これが私のコードです:
CREATE TABLE #TEMP
(
NUMBERS VARCHAR (20),
SHIP_DATES DATETIME,
ID INT
)
INSERT INTO #TEMP VALUES ( 'ABC1006000046' , '6/5/2010' , '123' )
INSERT INTO #TEMP VALUES ( 'ABC1006000046' , '7/15/2013' , '123' )
INSERT INTO #TEMP VALUES ( 'CDS0809000059' , '9/8/2008' , '124' )
INSERT INTO #TEMP VALUES ( 'CDS0809000059' , '1/31/2013' , '124' )
SELECT SUBSTRING(NUMBERS, 6, 2) AS NUMBER_MONTH,
SUBSTRING(NUMBERS, 4, 2) AS NUMBER_FY,
DATEPART (MONTH, SHIP_DATES) AS SHIP_DATE_MONTH,
DATEPART (YEAR, SHIP_DATES) AS SHIP_DATE_FY,
ID
INTO #TEMP1
FROM #TEMP
--calculate the difference in month and fiscal year
SELECT DATEDIFF( YEAR , NUMBER_FY , SHIP_DATE_FY ) AS DIFF_YEAR ,
DATEDIFF( MONTH , NUMBER_MONTH , SHIP_DATE_MONTH ) AS DIFF_MONTH ,
ID
FROM #TEMP1
これは私が受け取るエラーメッセージです:
Conversion failed when converting date and/or time from character string.
注意してください、これはdatetimeアプローチへの変換ですが、私はまだそれを機能させる方法を理解していません:
CONVERT(VARCHAR , SHIP_DATES , 101 ) AS 'MM/DD/YYYY'