'、'の近くの誤った構文AND))の近くの構文が正しくありません

角かっこで問題がありますが、エラーの場所がわかりません。

DECLARE @theDate varchar(60)
DECLARE @theDay varchar(6)
DECLARE @theMonth varchar(6)
SET @theDate = GETDATE()
IF(CAST(DAY(@theDate)as int) > 9 ,SET @theDay = CAST(DAY(@theDate)as Varchar(6)), SET @theDay = '0' + CAST(DAY(@theDate)as Varchar(6)));
IF(CAST(DAY(@theDate)as int) > 9 ,SET @theMonth = CAST(MONTH(@theDate)as Varchar(6)), SET @theMonth = '0' + CAST(MONTH(@theDate)as Varchar(6)));

エラーメッセージ

Msg 102, Level 15, State 1, Line 13
Incorrect syntax near ','.
Msg 102, Level 15, State 1, Line 13
Incorrect syntax near ','.
Msg 102, Level 15, State 1, Line 13
Incorrect syntax near ')'.
1

5 答え

単純にこうしないでください。

select DAY(GETDATE())
select MONTH(GETDATE())
0
追加された

たぶんあなたはこのコードを試してみるべきでしょう。

DECLARE @theDate varchar(60)
DECLARE @theDay varchar(6)
DECLARE @theMonth varchar(6)

SET @theDate = GETDATE()

IF
  CAST(DAY(@theDate)as int) > 9
THEN
  SET @theDay = CAST(DAY(@theDate)as Varchar(6))
ELSE
  SET @theDay = '0' + CAST(DAY(@theDate)as Varchar(6))
END

IF
  CAST(DAY(@theDate)as int) > 9
THEN
  SET @theMonth = CAST(MONTH(@theDate)as Varchar(6))
ELSE
  SET @theMonth = '0' + CAST(MONTH(@theDate)as Varchar(6))
END
0
追加された

SQLクエリでifを使用している場合は、ifループの後にBeginとEndを使用するのが適切です。 これを試すことができます。

IF(CAST(DAY(@theDate)as int) > 9) Begin SET @theDay = CAST(DAY(@theDate)as Varchar(6)); SET @theDay = '0' + CAST(DAY(@theDate)as Varchar(6)); End IF(CAST(DAY(@theDate)as int) > 9) BEGIN SET @theMonth = CAST(MONTH(@theDate)as Varchar(6)); SET @theMonth = '0' + CAST(MONTH(@theDate)as Varchar(6)); END END

0
追加された
DECLARE @theDate varchar(60)

DECLARE @theDay varchar(6)

DECLARE @theMonth varchar(6)

SET @theDate = GETDATE()

 IF(CAST(DAY(@theDate)as int) > 9 )

  SET @theDay = CAST(DAY(@theDate)as Varchar(6))

 else

  SET @theDay = '0' +( CAST(DAY(@theDate)as Varchar(6)));

IF(CAST(DAY(@theDate)as int) > 9 )

 SET @theMonth = CAST(MONTH(@theDate)as Varchar(6))

else

 SET @theMonth = '0' + (CAST(MONTH(@theDate)as Varchar(6)));

上記以外の場合は適切な構文を使用してください。

0
追加された

不適切な括弧とコンマを使用しました。さらにセクション定義用に beginend を追加しました。 これがあなたの作業コードです。

DECLARE @theDate varchar(60)
DECLARE @theDay varchar(6)
DECLARE @theMonth varchar(6)
SET @theDate = GETDATE()
IF(CAST(DAY(@theDate)as int)) > 9 
begin  
     SET @theDay = CAST(DAY(@theDate)as Varchar(6)) 
     set @theDay = '0' + CAST(DAY(@theDate)as Varchar(6)) 
end;
IF(CAST(DAY(@theDate)as int)) > 9 
begin 
     SET @theMonth = CAST(MONTH(@theDate)as Varchar(6)) 
     SET @theMonth = '0' +    CAST(MONTH(@theDate)as Varchar(6)) 
end;

出力を確認するには、以下の行をコードに追加してください。


select @theDay
select @theMonth
0
追加された