これはSQLサブクエリであり、次のようなエラーが発生します。
「文字列から日付や時刻を変換するときに変換に失敗しました。」
datetimeをdatetime2に置き換えようとしましたが、機能しません。
declare @cols as NVARCHAR(max)
, @cols2 as NVARCHAR(max)
, @query as NVARCHAR(max) select
@cols = STUFF(
(
select
',' + QUOTENAME(ProductOptionName)
from
OrderProductVariantOption [NL]
inner join OrderProductVariant [NL] on
OrderProductVariant.Id = OrderProductVariantOption.OrderProductVariantId
where
(
OrderProductVariant.AcceptedById = '[Business|0]'
or OrderProductVariant.MRefId = '[Business|0]'
)
and [OrderProductVariant.MarketplaceGroupId=Marketplace]
and OrderProductVariant.DateCreated >= cast(cast('[startdate]' as date) as datetime2)
and OrderProductVariant.DateCreated < cast(cast('[enddate]' as date) as datetime2)
group by
ProductOptionName
order by
ProductOptionName for XML path('')
, TYPE
)
. value('.', 'NVARCHAR(MAX)')
, 1
, 1
, ''
)
[NL]は複数回使用されるため、[NL]を削除してください。
たぶんOrderProductVariant.DateCreatedの日付ギは異なっています。そのため、フォーマットも修正してください。
およびcast(OrderProductVariant.DateCreated as date)> = cast([startdate] as date)
最後に、コードは次のようになります。
declare @cols as NVARCHAR(max)
, @cols2 as NVARCHAR(max)
, @query as NVARCHAR(max) select
@cols = STUFF(
(
select
',' + QUOTENAME(ProductOptionName)
from
OrderProductVariantOption
inner join OrderProductVariant on
OrderProductVariant.Id = OrderProductVariantOption.OrderProductVariantId
where
(
OrderProductVariant.AcceptedById = '[Business|0]'
or OrderProductVariant.MRefId = '[Business|0]'
)
and [OrderProductVariant.MarketplaceGroupId=Marketplace]
and cast(OrderProductVariant.DateCreated as date) >= cast([startdate] as date)
and cast(OrderProductVariant.DateCreated as date) < cast([enddate] as date)
group by
ProductOptionName
order by
ProductOptionName for XML path('')
, TYPE
)
. value('.', 'NVARCHAR(MAX)')
, 1
, 1
, ''
)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加