SPSS Modeler18.5の新機能のdate_add_XX および time_add_XXの 日時関数で、年月日時分秒の増減のSQLプッシュバックが可能になりました。
Modeler18.4以前でもDB2などでは、DB関数を使ってSQLプッシュバックさせるという回避策がありましたが、Snowflakeではその回避策が無効でした。
この記事ではdate_add_XX および time_add_XXが、SnowflakeでもSQLプッシュバックが実行可能であることを確認しました。
- テスト環境
- Windows 11 64bit
- Modeler 18.5
- Snowflake ODBC ドライバー 2.25.2
元データ
以下のDATE型、TIMESTAMP型を持つテーブルをSnowflake上に準備しました。
time_add_seconds
time_add_seconds(40,@FIELD)でTIMESTAMP列に40秒加算します。
以下のように{fn TIMESTAMPADD(SECOND,40,T0.TS)}という関数に変換されました。
[2023-12-19 19:32:20] SQL をプレビュー中:
SELECT T0."INT" AS "INT",T0."FLOAT" AS "FLOAT",T0.STR AS STR,T0."DATE" AS "DATE",T0.TS AS TS,T0."TIME" AS "TIME",
({fn TIMESTAMPADD(SECOND,40,T0.TS)}) AS "TS_Derive"
FROM SFTESTS.TYPETEST T0
date_add_days
date_add_days(15, @FIELD)で、DATE列とTIMESTAMP列に15日加算します。
以下のように、それぞれ
DATEADD(DAY,15,T0."DATE")
({fn TIMESTAMPADD(DAY,15,T0.TS)})
という関数に変換されました。
2023-12-19 19:38:09] SQL をプレビュー中:
SELECT T0."INT" AS "INT",T0."FLOAT" AS "FLOAT",T0.STR AS STR,T0."DATE" AS "DATE",T0.TS AS TS,T0."TIME" AS "TIME",
DATEADD(DAY,15,T0."DATE") AS "DATE_Derive",
({fn TIMESTAMPADD(DAY,15,T0.TS)}) AS "TS_Derive"
FROM SFTESTS.TYPETEST T0
参考
日付および時刻の関数 - IBM Documentation
DATEADD | Snowflake Documentation
TIMESTAMPADD | Snowflake Documentation
SPSS Modeler 18.5リリース #SPSS - Qiita
SPSS ModelerからSnowflakeに接続する(Nativeドライバー)