SnowConvert AI - Redshift - 組み込み関数¶
注釈
組み込み関数とそれに相当するSnowflake関数の詳細については、 共通組み込み関数 もご参照ください。
集計関数¶
集約関数は、入力値の集合から単一の結果値を計算します。( Redshift SQL言語リファレンス集約関数 )。
Redshift |
Snowflake |
|---|---|
<p></p><p><a href="https://docs.snowflake.com/ja/sql-reference/functions/any_value">ANY_VALUE</a> ( [ DISTINCT |
ALL ] 式) |
AVG ( [ DISTINCT | ALL ] 式) |
<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/avg">AVG</a> ( [ DISTINCT ] 式)</p><p></p><p><em>注意:RedshiftとSnowflakeでは、データ型の丸め/フォーマットにより、精度/小数点以下が異なる場合があります。</em></p> |
<p><a href="https://docs.snowflake.com/en/sql-reference/functions/listagg">LISTAGG</a> </p><p></p><p><em>注意:RedshiftのDISTINCTでは、末尾のスペースは無視されます('a ' = 'a')。Snowflakeでは無視されません。(</em> <a href="../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md">SSC-FDM-PG0013</a><em> を参照)。</em></p> |
|
<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/median">MEDIAN</a> </p><p></p><p><em>注意<strong>:Snowflakeは日付型</strong>の使用を許可していませんが、Redshiftは許可しています。(</em> <a href="../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md">SSC-FDM-PG0013</a><em> を参照)。</em></p> |
|
<p><a href="https://docs.aws.amazon.com/redshift/latest/dg/r_STDDEV_functions.html">STDDEV/STDDEV_SAMP</a> ( [ DISTINCT |
ALL ] 式) STDDEV_POP ( [ DISTINCT |
<p><a href="https://docs.aws.amazon.com/redshift/latest/dg/r_VARIANCE_functions.html">VARIANCE/VAR_SAMP</a> ( [ DISTINCT |
ALL ] 式) VAR_POP ( [ DISTINCT |
配列関数¶
SUPERデータ型の配列を作成します。( Redshift SQL言語リファレンス配列関数 )。
Redshift |
Snowflake |
|---|---|
ARRAY ( [ expr1 ] [ , expr2 [ , ... ] ] ) |
<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/array_construct">ARRAY_CONSTRUCT</a> </p><p>( [ <expr1> ] [ , <expr2> [ , ... ] ] )</p> |
ARRAY_CONCAT ( super_expr1, super_expr2 ) |
ARRAY_CAT ( <array1> , <array2> ) |
<p><a href="https://docs.aws.amazon.com/redshift/latest/dg/array_flatten.html">ARRAY_FLATTEN</a></p><p> ( <em>super_expr1</em>,<em>super_expr2</em>,.. )</p> |
<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/array_flatten">ARRAY_FLATTEN</a> ( <array> )</p><p></p><p><em>注意:結果はプラットフォームによって異なる場合があります(</em> <a href="../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md">SSC-FDM-PG0013</a><em> 参照)。</em></p> |
GET_ARRAY_LENGTH ( super_expr ) |
ARRAY_SIZE ( <array> | <variant>) |
SPLIT_TO_ARRAY ( string,delimiter ) |
<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/split">SPLIT</a> (<string>, <separator> )</p><p></p><p><em>:Redshiftでは区切り文字がなくても構いませんが、Snowflakeでは区切り文字が必要です。</em></p> |
SUBARRAY ( super_expr, start_position, length ) |
<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/array_slice">ARRAY_SLICE</a> ( <array> , <from> , <to> )</p><p></p><p><em>注意: 関数名と第2引数が異なります。等価性のために引数を調整してください。</em></p> |
条件式¶
Redshift |
Snowflake |
|---|---|
<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/decode">DECODE</a> </p><p></p><p><em>注意:</em><em>結果はプラットフォームによって異なる場合があります(</em> <a href="../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md">SSC-FDM-PG0013</a><em> を参照)。</em></p> |
|
COALESCE ( expression, expression, ... ) |
COALESCE ( expression, expression, ... ) |
GREATEST ( value [, ...] ) |
<p></p><p><a href="https://docs.snowflake.com/ja/sql-reference/functions/greatest_ignore_nulls">GREATEST_IGNORE_NULLS</a> ( <expr1> [, <expr2> ... ] )</p><p></p> |
LEAST ( value [, ...] ) |
LEAST_IGNORE_NULLS ( <expr1> [, <expr2> ... ] ) |
NVL ( expression, expression, ... ) |
<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/nvl"><em>NVL</em></a> <em>( expression, expression )</em></p><p></p><p><em>注意:RedshiftのNVLは複数の引数を受け付けますが、SnowflakeのNVLは2つしか受け付けません。Redshiftの動作に合わせるため、引数が2つ以上のNVLはCOALESCEに変換されます。</em></p> |
<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/nullif">NULLIF</a> </p><p></p><p><em>注意:RedshiftのNULLIFは、Snowflakeとは異なり、一部の文字列比較では末尾の空白が無視されます。したがって、この変換は等価性のためにRTRIMを追加します。</em></p> |
データ型フォーマット関数¶
データ型フォーマット関数は、あるデータ型から別のデータ型に値を変換する簡単な方法を提供します。これらの関数のそれぞれについて、第1引数は常にフォーマットされる値で、第2引数には新しいフォーマットのテンプレートが含まれます。( Redshift SQL言語リファレンスデータ型フォーマット関数 )。
Redshift |
Snowflake |
|---|---|
<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/to_char">TO_CHAR</a> </p><p></p><p><em>注意:Snowflakeはこの機能を部分的にサポートしています(</em> <a href="../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI.md#ssc-ewi-0006"><em>SSC-EWI-0006</em></a><em> を参照)。</em></p> |
|
<p><a href="https://docs.snowflake.com/en/sql-reference/functions/to_date">TO_DATE</a> </p><p></p><p><em>注意:Snowflakeの<code>TO_DATE</code>は、Redshiftの柔軟な<code>TO_DATE</code>とは異なり、「20010631」(6月は30日間)のような無効な日付で失敗します。Snowflakeの<code>TRY_TO_DATE</code>を使用して、NULLを返すことで、このようなケースを処理することができます(</em> <a href="../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/redshift/ssc-fdm-rs0004.md"><em>SSC-FDM-RS0004</em></a><em>,</em> <a href="../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI.md#ssc-ewi-0006"><em>SSC-EWI-0006</em></a><em>,</em> <a href="../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/general/ssc-fdm-0032.md"><em>SSC-FDM-0032</em></a><em> を参照)。</em></p> |
日付と時刻の関数¶
Redshift |
Snowflake |
|---|---|
<p><a href="https://docs.snowflake.com/en/sql-reference/functions/add_months">ADD_MONTHS</a> </p><p></p><p><em>注意:</em><em>結果はプラットフォームによって異なる場合があります(</em> <a href="../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md">SSC-FDM-PG0013</a><em> を参照)。</em></p> |
|
<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/convert_timezone">CONVERT_TIMEZONE</a> ( <source_tz> , <target_tz> , <source_timestamp_ntz> )</p><p><br></p><p><a href="https://docs.snowflake.com/ja/sql-reference/functions/convert_timezone">CONVERT_TIMEZONE</a> ( <target_tz> , <source_timestamp> ) </p><p></p><p><em>注意:RedshiftのデフォルトはUTCです。Snowflake関数では明示的なUTC指定が必要です。したがって、ターゲットタイムゾーンとして追加されます。</em></p> |
|
DATEADD/DATE_ADD ( datepart, interval, {date | time | timetz | timestamp} ) |
<p><a href="https://docs.snowflake.com/en/sql-reference/functions/dateadd">DATE_ADD</a> ( <date_or_time_part>, <value>, <date_or_time_expr> )</p><p></p><p><em>注意:無効な日付部分のフォーマットは、Snowflakeと互換性のあるフォーマットに変換されます。</em></p> |
<p><a href="https://docs.snowflake.com/en/sql-reference/functions/datediff">DATEDIFF</a> </p><p></p><p><em>注意:無効な日付部分のフォーマットは、Snowflakeと互換性のあるフォーマットに変換されます。</em></p> |
|
<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/date_part">DATE_PART</a> </p><p></p><p><em>注:この機能はSnowflakeによって部分的にサポートされています。(</em> <a href="../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI.md#ssc-ewi-0006"><em>SSC-EWI-OOO6</em></a><em> をご参照ください)。</em></p> |
|
DATE_PART_YEAR (date) |
<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/year">YEAR</a> ( <date_or_timestamp_expr> ) </p><p></p><p><em>注意:</em><em>結果はプラットフォームによって異なる場合があります(</em> <a href="../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md">SSC-FDM-PG0013</a><em> を参照)。</em></p> |
<p><a href="https://docs.snowflake.com/en/sql-reference/functions/date_trunc">DATE_TRUNC</a> </p><p></p><p><em>注意:無効な日付部分のフォーマットは、Snowflakeと互換性のあるフォーマットに変換されます。</em></p> |
|
GETDATE() |
GETDATE() |
<p><a href="https://docs.snowflake.com/en/sql-reference/functions/last_day">LAST_DAY</a> </p><p></p><p><em>注意:</em><em>結果はプラットフォームによって異なる場合があります(</em> <a href="../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md">SSC-FDM-PG0013</a><em> を参照)。</em></p> |
|
<p><a href="https://docs.snowflake.com/en/sql-reference/functions/next_day">NEXT_DAY</a> </p><p></p><p><em>注意:</em><em>結果はプラットフォームによって異なる場合があります(</em> <a href="../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md">SSC-FDM-PG0013</a><em> を参照)。</em></p> |
|
SYSDATE() |
|
<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/extract">EXTRACT</a><br><br><em>注意:</em>パートタイムまたは日時に対応:DAY、DOW、DOY、EPOCH、HOUR、MINUTE、MONTH、QUARTER、SECOND、WEEK、YEAR</p> |
注釈
Redshiftのタイムスタンプのデフォルトはマイクロ秒精度(6桁)、Snowflakeのデフォルトはナノ秒精度(9桁)です。必要に応じて、ALTER SESSIONを使って精度を調整します(例えば、 ALTER SESSION SET TIMESTAMP_OUTPUT_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF2'; )。使用するデータ型によっては精度の低下が発生する場合があります。Snowflakeと互換性のないフォーマットもあるため、アカウントパラメーター DATE_INPUT_FORMAT or TIME_INPUT_FORMAT を調整することで、プラットフォーム間の機能的な同等性を維持できる場合があります。
ハッシュ関数¶
ハッシュ関数とは、数値入力値を別の値に変換する数学関数です。( Redshift SQL言語リファレンスハッシュ関数 )。
Redshift |
Snowflake |
|---|---|
FNV_HASH (value [, seed]) |
<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/hash"><em>HASH</em></a> <em>( <expr> [ , <expr> ... ]。 |
JSON 関数¶
Redshift |
Snowflake |
|---|---|
<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/json_extract_path_text">JSON_EXTRACT_PATH_TEXT</a> </p><p></p><p><em>注意:</em></p><ol><li><em>Redshiftは改行文字、タブ文字、キャリッジリターン文字を文字通りに扱いますが、Snowflakeはそれらを解釈します。</em></li><li><em>Snowflake関数のネストされたオブジェクトにアクセスするには、JSONリテラルとドット区切りのパスが必要です。</em></li><li><em>変数にスペースが含まれるパスは引用符で囲む必要があります。</em></li></ol> |
数学関数¶
Redshift |
Snowflake |
|---|---|
DLOG10 (number) |
LOG (10, number) |
注釈
RedshiftとSnowflakeの結果は規模が異なる可能性があります。
文字列関数¶
文字列関数は、文字列または文字列に対して評価される式を処理および操作します。( Redshift SQL言語リファレンス文字列関数 )。
Redshift |
Snowflake |
|---|---|
<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/left">LEFT</a>/<a href="https://docs.snowflake.com/en/sql-reference/functions/right">RIGHT</a> </p><p></p><p><em>注意:<code>LEFT</code>/<code>RIGHT</code>の負の長さの場合、Snowflakeは空の文字列を返します。</em></p> |
|
<p><a href="https://docs.snowflake.com/en/sql-reference/functions/octet_length">OCTET_LENGTH</a> </p><p></p><p><em>注意:</em><em>結果はプラットフォームによって異なる場合があります(</em> <a href="../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md">SSC-FDM-PG0013</a><em> を参照)。</em></p> |
|
QUOTE_IDENT (string) |
CONCAT ('"', string, '"') |
<p><a href="https://docs.snowflake.com/en/sql-reference/functions/regexp_replace">REGEXP_REPLACE</a> </p><p></p><p><em>注意:この関数には <code>parameters</code> 引数があり、Perl互換正規表現(PCRE)方言を使ってパターンを解釈することができます。 <code>p</code> の値で表されますが、問題を避けるためにこれは削除されています</em>。<em>(</em> <a href="../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/generalEWI.md#ssc-ewi-0009"><em>SSC-EWI-0009</em></a><em>,</em> <a href="../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/general/ssc-fdm-0032.md"><em>SC-FDM-0032</em></a><em>,</em> <a href="../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0011.md"><em>SSC-FDM- PG0011</em></a><em> を参照)。</em></p> |
|
<p><a href="https://docs.snowflake.com/en/sql-reference/functions/soundex">SOUNDEX</a> </p><p></p><p><em>注意:一部の特殊文字は、プラットフォームによって結果が異なる場合があります(</em> <a href="../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md">SSC-FDM-PG0013</a><em> を参照)。</em></p> |
|
<p><a href="https://docs.snowflake.com/en/sql-reference/functions/split_part">SPLIT_PART</a> </p><p></p><p><em>注意:SnowflakeとRedshiftでは、大文字小文字を区別しない照合順序でSPLIT_PARTの扱いが異なります。</em></p> |
|
STRPOS (string, substring ) |
POSITION ( <expr1> IN <expr> ) |
<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/substr"><em>SUBSTRING</em></a> </p><p></p><p><em>注意:</em>Snowflakeはこの機能を部分的にサポートしています。Redshiftの <code>SUBSTRING</code> は、 <code>start_position</code> が正でない場合、 <code>start_position + number_characters</code> を計算します(結果が正でない場合は '' を返します)。Snowflakeの動作は異なります。( <a href="../../../general/technical-documentation/issues-and-troubleshooting/conversion-issues/redshift/ssc-ewi-rs0006.md">SSC-EWI-RS0006</a> をご参照ください)。</p> |
|
<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/trim"><em>TRIM</em></a> </p><p></p><p><em>注意:Redshiftはトリミングにキーワード(BOTH、LEADING、TRAILING)を使用し、SnowflakeはTRIM、LTRIM、RTRIMを使用します。</em></p> |
|
SUPER型情報機能¶
Redshift |
Snowflake |
|---|---|
<p><a href="https://docs.snowflake.com/en/sql-reference/functions/is_array">IS_ARRAY</a> </p><p></p><p><em>注意:</em><em>結果はプラットフォームによって異なる場合があります(</em> <a href="../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md">SSC-FDM-PG0013</a><em> を参照)。</em></p> |
|
<p><a href="https://docs.snowflake.com/en/sql-reference/functions/is_boolean">IS_BOOLEAN</a> </p><p></p><p><em>注意:</em><em>結果はプラットフォームによって異なる場合があります(</em> <a href="../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md">SSC-FDM-PG0013</a><em> を参照)。</em></p> |
ウィンドウ関数¶
Redshift |
Snowflake |
|---|---|
<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/avg"><em>AVG</em></a> </p><p></p><p><em>注意:AVGの丸め/書式はRedshiftとSnowflakeの間でデータ型によって異なる場合があります。</em></p> |
|
<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/dense_rank">DENSE_RANK</a> </p><p></p><p><em>注意:SnowflakeではORDER BYは必須です。欠落している句は <code>ORDER BY 1</code> に置き換えられます。</em></p> |
|
<p><a href="https://docs.snowflake.com/en/sql-reference/functions/first_value">FIRST_VALUE</a> </p><p></p><p><em>注意:SnowflakeはORDER BYを必要とします。欠落している句は <code>ORDER BY <expr></code> となります。</em></p> |
|
<p><a href="https://docs.snowflake.com/en/sql-reference/functions/last_value">LAST_VALUE</a> </p><p></p><p><em>注意:SnowflakeはORDER BYを必要とします。欠落している句は <code>ORDER BY <expr></code> となります。</em></p> |
|
<p><a href="https://docs.snowflake.com/en/sql-reference/functions/lead">LEAD</a> </p><p></p><p><em>注意:Redshiftでは定数オフセットまたは式オフセットが可能です。Snowflakeでは定数オフセット</em>のみ可能です。</p> |
|
<p><a href="https://docs.snowflake.com/en/sql-reference/functions/listagg">LISTAGG</a> </p><p></p><p><em>注意:RedshiftのDISTINCTでは、末尾のスペースは無視されます('a ' = 'a')。Snowflakeでは無視されません。(</em> <a href="../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md">SSC-FDM-PG0013</a><em> を参照)。</em></p> |
|
<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/median">MEDIAN</a> </p><p></p><p><em>注意<strong>:Snowflakeは日付型</strong>の使用を許可していませんが、Redshiftは許可しています。(</em> <a href="../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md">SSC-FDM-PG0013</a><em> を参照)。</em></p> |
|
<p><a href="https://docs.snowflake.com/en/sql-reference/functions/nth_value">NTH_VALUE</a> </p><p></p><p><em>注意:SnowflakeではORDER BYは必須です。欠落している句は <code>ORDER BY 1</code> に置き換えられます。</em></p> |
|
<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/ntile">NTILE</a> </p><p></p><p><em>注意:SnowflakeではORDER BYは必須です。欠落している句は <code>ORDER BY 1</code> に置き換えられます。 (</em> <a href="../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md">SSC-FDM-PG0013</a><em> を参照)。</em></p> |
|
<p><a href="https://docs.snowflake.com/en/sql-reference/functions/percent_rank">PERCENT_RANK</a> </p><p></p><p><em>注意:SnowflakeではORDER BYは必須です。欠落している句は <code>ORDER BY 1</code> に置き換えられます。</em></p> |
|
<p><a href="https://docs.snowflake.com/en/sql-reference/functions/percentile_cont">PERCENTILE_CONT</a> </p><p></p><p><em>注意:四捨五入はプラットフォームによって異なります。</em></p> |
|
<p><a href="https://docs.snowflake.com/en/sql-reference/functions/ratio_to_report">RATIO_TO_REPORT</a> </p><p></p><p><em>注意:</em><em>結果はプラットフォームによって異なる場合があります(</em> <a href="../../../general/technical-documentation/issues-and-troubleshooting/functional-difference/postgresql/ssc-fdm-pg0013.md">SSC-FDM-PG0013</a><em> を参照)。</em></p> |
|
<p><a href="https://docs.snowflake.com/ja/sql-reference/functions/row_number">ROW_NUMBER</a> </p><p></p><p><em>注意:SnowflakeではORDER BYは必須です。欠落している句は <code>ORDER BY 1</code> に置き換えられます。</em></p> |
|
STDDEV |
|
VARIANCE |
既知の問題¶
関数内の引用符で囲まれた識別子についての詳細は、 こちら をクリックしてください。
IDENTITY¶
説明¶
IDENTITY 関数は、アイデンティティの初期値を決定するためにテーブルの指定された列を操作するシステム関数です。初期値がない場合は、関数が提供した値がデフォルト値となります。これはSnowflakeのシーケンスに変換されます。
文法構文¶
"identity"(oid_id, oid_table_id, default)
注釈
この関数はRedshiftではサポートされなくなりました。アイデンティティを定義するためにデフォルト値を使用し、標準的なアイデンティティ列のように振る舞います。
サンプルソースパターン¶
入力コード:¶
Redshift¶
CREATE TABLE IF NOT EXISTS table_test
(
id integer,
inventory_combo BIGINT DEFAULT "identity"(850178, 0, '5,3'::text)
);
INSERT INTO table_test (id) VALUES
(1),
(2),
(3),
(4);
SELECT * FROM table_test;
結果¶
id |
inventory_combo |
|---|---|
1 |
5 |
2 |
8 |
3 |
11 |
3 |
14 |
出力コード:
Snowflake¶
CREATE TABLE IF NOT EXISTS table_test
(
id integer,
inventory_combo BIGINT IDENTITY(5,3) ORDER
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "redshift", "convertedOn": "11/13/2024", "domain": "test" }}';
INSERT INTO table_test (id) VALUES
(1),
(2),
(3),
(4);
SELECT * FROM
table_test;
結果¶
id |
inventory_combo |
|---|---|
1 |
5 |
2 |
8 |
3 |
11 |
3 |
14 |
関連 EWIs¶
既知の問題はありません。
TO_CHAR¶
日付関数
説明¶
TO_CHAR は、タイムスタンプや数値式を文字列データ形式に変換します。(Redshift SQL 言語リファレンス TO_୧ CHAR 関数)
警告
この関数は Snowflake で部分的にサポートされています。
関数内の引用符で囲まれた識別子についての詳しい情報は、 ここをクリックしてください。
文法構文¶
TO_CHAR(timestamp_expression | numeric_expression , 'format')
サンプルソースパターン¶
入力コード:¶
Redshift¶
SELECT TO_CHAR(timestamp '2009-12-31 23:15:59', 'YYYY'),
TO_CHAR(timestamp '2009-12-31 23:15:59', 'YYY'),
TO_CHAR(timestamp '2009-12-31 23:15:59', 'TH'),
"to_char"(timestamp '2009-12-31 23:15:59', 'MON-DY-DD-YYYY HH12:MIPM'),
TO_CHAR(125.8, '999.99'),
"to_char"(125.8, '999.99');
結果¶
TO_CHAR |
TO_CHAR |
TO_CHAR |
TO_CHAR |
TO_CHAR |
|---|---|---|---|---|
2009 |
009 |
DEC-THU-31-2009 11:15PM |
125.80 |
125.80 |
出力コード:¶
Snowflake¶
SELECT
TO_CHAR(timestamp '2009-12-31 23:15:59', 'YYYY'),
PUBLIC.YEAR_PART_UDF(timestamp '2009-12-31 23:15:59', 3),
TO_CHAR(timestamp '2009-12-31 23:15:59', 'TH') !!!RESOLVE EWI!!! /*** SSC-EWI-0006 - TH FORMAT MAY FAIL OR MAY HAVE A DIFFERENT BEHAVIOR IN SNOWFLAKE. ***/!!!,
PUBLIC.MONTH_SHORT_UDF(timestamp '2009-12-31 23:15:59', 'uppercase') || '-' || PUBLIC.DAYNAME_SHORT_UDF(timestamp '2009-12-31 23:15:59', 'uppercase') || TO_CHAR(timestamp '2009-12-31 23:15:59', '-DD-YYYY HH12:MI') || PUBLIC.MERIDIAN_INDICATORS_UDF(timestamp '2009-12-31 23:15:59', 'uppercase'),
TO_CHAR(125.8, '999.99'),
TO_CHAR(125.8, '999.99');
結果¶
TO_CHAR |
TO_CHAR |
|---|---|
2009 |
Dec-Thu-31-2009 11:15PM |
既知の問題¶
問題は見つかりませんでした。
関連 EWIs¶
SSC-EWI-0006 :現在の日付/数値フォーマットは、Snowflake では異なる動作をする可能性があります。
日付時刻値の場合¶
日付やタイムスタンプの値を文字列に変換する際のTO_CHAR関数の変換仕様
説明¶
以下の形式文字列は、 TO_CHAR のような関数に適用されます。これらの文字列には、日付の区切り文字('
-'、'/'、':'など)と、以下の "dateparts" および "timeparts" を含めることができます。(Redshift日付時刻形式文字列リファレンスページ)
文法構文¶
TO_CHAR (timestamp_expression, 'format')
次のテーブルは、各形式要素とSnowflakeのマッピングを指定します。
Redshift |
Snowflake |
|---|---|
|
|
|
|
|
|
|
直接サポートされています |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p><code>PUBLIC.DAY_OF_WEEK_UDF</code> </p><p></p><p><em>注意:このUDFが適切に機能するには、Snowflakeセッションパラメーター <code>WEEK_START</code> がデフォルト値( <code>0</code> )である必要があります。</em></p> |
|
|
|
|
|
直接サポートされています |
|
|
|
直接サポートされています |
|
直接サポートされています |
|
直接サポートされています |
|
|
|
|
|
|
|
|
|
<p><code>UTC</code> および <code>utc</code> </p><p></p><p><em>注意:</em> <a href="https://docs.aws.amazon.com/redshift/latest/dg/r_Datetime_types.html#r_Datetime_types-timestamptz"><em>redshiftドキュメント</em></a><em> によると、すべてのタイムゾーンを含むタイムスタンプはUTCに格納されており、このフォーマット要素が固定の結果を返すことになります。</em></p> |
|
<p>+00 </p><p></p><p><em>注意:</em> <a href="https://docs.aws.amazon.com/redshift/latest/dg/r_Datetime_types.html#r_Datetime_types-timestamptz"><em>redshiftドキュメント</em></a><em> によると、すべてのタイムゾーンを含むタイムスタンプはUTCに格納されており、このフォーマット要素が固定の結果を返すことになります。</em></p> |
|
|
|
注意:これは「スペルモード」のためのPostgreSQLテンプレートパターン修飾子ですが、Redshift上では何もしないので、出力から削除されています。 |
|
注意:これは「固定フォーマット」のためのもう一つのテンプレートパターン修飾子ですが、TO_CHAR関数では使用しないので削除されます。 |
サンプルソースパターン¶
形式要素の直接変換(関数なし/UDFs)¶
結果は単一の TO_CHAR 関数として保存されます
Redshift¶
クエリ¶
SELECT TO_CHAR('2013-10-03 13:50:15.456871'::TIMESTAMP, 'DD/MM/YY HH:MI:SS.MS') AS col1;
結果¶
+----------------------+
|col1 |
+----------------------+
|03/10/13 01:50:15.456 |
+----------------------+
Snowflake¶
クエリ¶
SELECT TO_CHAR('2013-10-03 13:50:15.456871'::TIMESTAMP, 'DD/MM/YY HH12:MI:SS.FF3') AS col1;
結果¶
+----------------------+
|col1 |
+----------------------+
|03/10/13 01:50:15.456 |
+----------------------+
関数/UDFs を使った形式変換¶
結果は、複数の TO_CHAR、 UDFs と、日付時刻値の等価な文字列表現を生成するSnowflake組み込み関数を連結したものです
Redshift¶
クエリ¶
SELECT TO_CHAR(DATE '2025-07-05', '"Today is " Month DAY DD, "it belongs to the week " IW') AS result;
結果¶
+-------------------------------------------------------------+
|result |
+-------------------------------------------------------------+
|Today is July SATURDAY 05, it belongs to the week 27 |
+-------------------------------------------------------------+
Snowflake¶
クエリ¶
SELECT
'Today is ' ||
TO_CHAR(DATE '2025-07-05', ' ') ||
PUBLIC.FULL_MONTH_NAME_UDF(DATE '2025-07-05', 'firstOnly') ||
' ' ||
PUBLIC.DAYNAME_LONG_UDF(DATE '2025-07-05', 'uppercase') ||
TO_CHAR(DATE '2025-07-05', ' DD, ') ||
'it belongs to the week ' ||
TO_CHAR(DATE '2025-07-05', ' ') ||
WEEKISO(DATE '2025-07-05') AS result;
結果¶
+-------------------------------------------------------------+
|result |
+-------------------------------------------------------------+
|Today is July SATURDAY 05, it belongs to the week 27 |
+-------------------------------------------------------------+
引用符で囲まれているテキスト¶
二重引用符で囲まれたテキスト内の形式要素は解釈されずに直接出力に追加され、エスケープされた二重引用符はSnowflakeでエスケープされた同等のものに変換されます。
Redshift¶
クエリ¶
SELECT
TO_CHAR(DATE '2025-01-16', 'MM "TESTING DD" DD') AS result1,
TO_CHAR(DATE '2025-01-16', 'MM TESTING \\"DD\\" DD') AS result2,
TO_CHAR(DATE '2025-01-16', 'MM "TESTING \\"DD\\"" DD') AS result3;
結果¶
+-----------------+-------------------+-------------------+
|result1 |result2 |result3 |
+-----------------+-------------------+-------------------+
|01 TESTING DD 16 |01 TEST5NG "16" 16 |01 TESTING "DD" 16 |
+-----------------+-------------------+-------------------+
Snowflake¶
クエリ¶
SELECT
TO_CHAR(DATE '2025-01-16', 'MM ') || 'TESTING DD' || TO_CHAR(DATE '2025-01-16', ' DD') AS result1,
TO_CHAR(DATE '2025-01-16', 'MM TEST') || PUBLIC.ISO_YEAR_PART_UDF(DATE '2025-01-16', 1) || TO_CHAR(DATE '2025-01-16', 'NG ""DD"" DD') AS result2,
TO_CHAR(DATE '2025-01-16', 'MM ') || 'TESTING "DD"' || TO_CHAR(DATE '2025-01-16', ' DD') AS result3;
結果¶
+-----------------+-------------------+-------------------+
|result1 |result2 |result3 |
+-----------------+-------------------+-------------------+
|01 TESTING DD 16 |01 TEST5NG "16" 16 |01 TESTING "DD" 16 |
+-----------------+-------------------+-------------------+
既知の問題¶
テンプレートパターン修飾子がサポートされていません¶
以下の形式テンプレート修飾子:
FM (フィルモード)
TH およびth(大文字および小文字の序数のサフィックス)
TM (翻訳モード)
サポートされていない場合、それらをフォーマットに含めると SSC-EWI-0006 が生成されます
入力コード:
SELECT TO_CHAR(CURRENT_DATE, 'FMMonth'),
TO_CHAR(CURRENT_DATE, 'DDTH'),
TO_CHAR(CURRENT_DATE, 'DDth'),
TO_CHAR(CURRENT_DATE, 'TMMonth');
出力コード:
SELECT
TO_CHAR(CURRENT_DATE(), 'FM') || PUBLIC.FULL_MONTH_NAME_UDF(CURRENT_DATE(), 'firstOnly') !!!RESOLVE EWI!!! /*** SSC-EWI-0006 - FMMonth FORMAT MAY FAIL OR MAY HAVE A DIFFERENT BEHAVIOR IN SNOWFLAKE. ***/!!!,
TO_CHAR(CURRENT_DATE(), 'DDTH') !!!RESOLVE EWI!!! /*** SSC-EWI-0006 - DDTH FORMAT MAY FAIL OR MAY HAVE A DIFFERENT BEHAVIOR IN SNOWFLAKE. ***/!!!,
TO_CHAR(CURRENT_DATE(), 'DDth') !!!RESOLVE EWI!!! /*** SSC-EWI-0006 - DDth FORMAT MAY FAIL OR MAY HAVE A DIFFERENT BEHAVIOR IN SNOWFLAKE. ***/!!!,
TO_CHAR(CURRENT_DATE(), 'TM') || PUBLIC.FULL_MONTH_NAME_UDF(CURRENT_DATE(), 'firstOnly') !!!RESOLVE EWI!!! /*** SSC-EWI-0006 - TMMonth FORMAT MAY FAIL OR MAY HAVE A DIFFERENT BEHAVIOR IN SNOWFLAKE. ***/!!!;
変数を通して渡される形式パラメーター
形式パラメーターが文字列リテラルではなく変数として渡された場合、形式要素の変換は適用できず、関数の使用時に警告 FDM が追加されます。
入力コード:
SELECT TO_CHAR(d, 'YYYY/MM/DD'),
TO_CHAR(d, f)
FROM (SELECT TO_DATE('2001-01-01','YYYY-MM-DD') as d, 'DD/MM/YYYY' as f);
出力コード:
SELECT TO_CHAR(d, 'YYYY/MM/DD'),
--** SSC-FDM-0032 - PARAMETER 'format_string' IS NOT A LITERAL VALUE, TRANSFORMATION COULD NOT BE FULLY APPLIED **
TO_CHAR(d, f)
FROM (SELECT TO_DATE('2001-01-01','YYYY-MM-DD') as d, 'DD/MM/YYYY' as f);
関連 EWIs¶
SSC-EWI-0006 :現在の日付/数値フォーマットは、Snowflake では異なる動作をする可能性があります。
SSC-FDM-0032: パラメーターがリテラル値でないため、変換を完全に適用できませんでした