0

わかりました、これは少し奇妙な要求です。PeopleSoft のレポートに書式設定された「年齢」ステートメントを表示しようとしていますが、これは「TSQL」ベースのビルダーを提供しますが、これはかなり役に立ちません。ストアド関数を使用することはできず、SQL ステートメント全体を 1 つのものとして編集することはできません。できることは、式が何であるかをフィールドごとに伝えることだけです。その後、ツールはすべての要素を結合してクエリを生成します。

したがって、その制限を考えると、どうすれば 2 つの日付の差を人間が読みやすい文としてフォーマットすることができるでしょうか。「14年と3ヶ月と10日」

どんなアイデアでも大歓迎です。

4

2 に答える 2

3

文字列連結を使用できる場合、これにより年数が得られます。

DATEDIFF(yy, t.startdate, t.enddate) 

これにより、月が得られます。

DATEDIFF(mm, 
         DATEADD(yy, 
                 DATEDIFF(yy,  
                          t.startdate, 
                          t.enddate), 
                 t.startdate), 
         t.enddate)

これにより、日数の値が得られます。

DATEDIFF(dd, 
         DATEADD(mm, 
                 DATEDIFF(mm, 
                          DATEADD(yy, 
                                  DATEDIFF(yy, 
                                           t.startdate, 
                                           t.enddate), 
                                  t.startdate), 
                          t.enddate), 
                          DATEADD(yy, 
                                  DATEDIFF(yy, 
                                           t.startdate, 
                                           t.enddate), 
                                  t.startdate)), 
         t.enddate)

StackExchange Data Explorerに投稿したこの保存済みクエリを使用して、表示およびテストできます。Azure を使用し、TSQL を使用しています...

于 2010-06-25T01:54:09.130 に答える
0

好きな式を使用できます。戻り値の型と SQL 関数を [式] タブに入力するだけで、その式をフィールドとして使用できます。

于 2010-07-01T14:21:10.790 に答える