1

これは、質問というよりも、専門家からの助けのようなものです。年に割り当てることができる BillingYear という変数を宣言する必要があります。問題は:

どのデータ型にするべきかわかりません! これは非常に単純なことですが...問題は、データベースに年の列がないことです。会計年度と呼ばれるものがあり、毎年 7 月 1 日から始まり、翌年 6 月 30 日に終了します。

年を入力する方法を見つけたいと思います。年は、日時変数であるfiscalstart、fiscalend変数に追加されます。私はこれを試しましたが、うまくいきません!

DECLARE
@Year int, --Here I thought I can assign year to any year then do the following:

DECLARE
@fiscalstart datetime = '07/01/' + @Year,
@fiscalend datetime = '06/30/' + @Year+1

次に、それを使用して、billingMonth = fn_Fiscal(@fiscalstart, @fiscalend ) によってbillingMonth を計算できます// この部分を知る必要はありませんが、この複雑な手順をすべて実行する必要がある理由を示したかっただけです。この問題にアプローチする最善の方法は何ですか?

4

4 に答える 4

2

ここにはいくつかの問題があります。最初に、日時にキャストしようとしている文字列が正しい形式であることを確認する必要があります。次に、年変数を文字列にキャストする必要があります。そうしないと、型の不一致が発生します。下記は用例です。

DECLARE @year INT
SET @year = 2012

DECLARE @debugDate1 DATETIME
SET @debugDate1 = '07/01/' + CAST(@year AS VARCHAR(MAX)) + ' 00:00:00'
SELECT @debugDate1

DECLARE @debugDate2 DATE
SET @debugDate2 = '07/01/' + CAST(@year AS VARCHAR(MAX))
SELECT @debugDate2
于 2013-07-11T17:19:39.767 に答える
1

文字列に int を追加しないでくださいyyyymmdd

DECLARE @Year int = 2013
DECLARE @fiscalstart datetime = cast(@Year as varchar(4)) + '0701'
于 2013-07-11T17:15:24.780 に答える