2

ストアド プロシージャを Microsoft SQL Server 2000 から Informix 11 に移動しようとしています。元の SP には、変換された日時を含む GROUP BY ステートメントを含む最終選択ステートメントが含まれています。

group by convert(varchar(8), c.startDateTime, 1)

これを Informix 構文に変換すると、実行時に構文エラーが発生します。

GROUP BY (c.startDateTime::DATETIME YEAR TO DAY)::VARCHAR(10)

可能であれば、これを Informix で行う方法を教えてください。これが不可能であると思われる場合、通常、クエリ全体でこれをどのように処理しますか?

4

3 に答える 3

2

これから変換する必要があると思います:

SELECT a, b, c 

FROM  ...

GROUP BY (c.startDateTime::DATETIME YEAR TO DAY)::VARCHAR(10) ;

次のようなものに:

SELECT a, b, c, 
    (c.startDateTime::DATETIME YEAR TO DAY)::VARCHAR(10) AS d

FROM  ...

GROUP BY 4 ;        --- meaning: the 4th column in the SELECT clause
于 2012-10-26T20:15:30.317 に答える
1

Informix では、通常、日時フィールドを文字列に変換して操作する必要はありません。代わりに、extend 関数を使用してください。

たとえば、 が 2012-10-28 23:00:00 のようc.StartDateTimeに年単位の日時として定義されていて、日付部分だけが必要な場合は、extend ( c.StartDateTime, year to day) を使用します。これは 2012-10-28 を返します。

于 2012-10-28T14:16:18.437 に答える
0

日付を mm/dd/yyyy (mssql style=1) の varchar に Informix 構文に変換していますか?

TO_CHAR(c.StartDateTime,"%m/%d/%iY")

???

于 2012-10-26T20:19:14.797 に答える