このトピックでは、TSQL関数について説明します。
集計関数
集計関数 | サポートされているデータ型 | 戻り値の型 | 戻り値 |
---|---|---|---|
| SMALLINT、INTEGER、BIGINT、FLOAT、およびDOUBLE。 | expression パラメーターで指定された値のデータ型と同じ | 指定された式の計算結果の平均値。 |
| 該当なし | BigInt | 行の総数。 |
| すべてのデータ型。 | BigInt | 指定された式のNULL以外の値の数。 |
| すべてのデータ型。 | 該当なし | 指定された式の一意のNULL以外の値の数。 |
| SMALLINT、INTEGER、BIGINT、FLOAT、DOUBLE、およびVARCHAR。 | expression パラメーターで指定された値のデータ型と同じ | 指定された式の最大値。 |
| SMALLINT、INTEGER、BIGINT、FLOAT、DOUBLE、およびVARCHAR。 | expression パラメーターで指定された値のデータ型と同じ | 指定された式の最小値。 |
| expression パラメーターでサポートされているデータ型は、DOUBLE、VARCHAR、およびBOOLEANです。 timestamp パラメーターでサポートされているデータ型は、TIMESTAMです。 | expression パラメーターで指定された値のデータ型と同じ | 式の計算結果をタイムスタンプでソートした後の、最大タイムスタンプに対応する値。 |
| expression パラメーターでサポートされているデータ型は、DOUBLE、VARCHAR、およびBOOLEANです。 timestamp パラメーターでサポートされているデータ型は、TIMESTAMPです。 | expression パラメーターで指定された値のデータ型と同じ | 式の計算結果をタイムスタンプでソートした後の、最小タイムスタンプに対応する値。 |
数学関数
TSQLは、次の表に示す数学関数と、「三角関数」セクションにリストされている三角関数をサポートしています。ほとんどの数学関数とすべての三角関数は、次のデータ型の入力値をサポートしています。
INTEGER
BIGINT
FLOAT
DOUBLE
SMALLINT
関数 | 戻り値の型 | 説明 |
---|---|---|
| 入力と同じ | 数値の絶対値を返します。 x パラメーターは数値を指定します。 |
| FLOAT8 | 数値の立方根を返します。 x パラメーターは数値を指定します。 |
| 入力と同じ | 数値以上の最小の整数を返します。 x パラメーターは数値を指定します。 |
| 入力と同じ | 数値以上の最小の整数を返します。 x パラメーターは数値を指定します。 |
| FLOAT8 | ラジアンで表された角度を度に変換します。 x パラメーターはラジアン単位の角度を指定します。 |
| FLOAT8 | 2.718281828459045を返します。 |
| FLOAT8 | 定数eを数値の累乗した結果を返します。 x パラメーターは数値を指定します。定数eはオイラー数として知られています。 |
| 入力と同じ | 数値以下の最大の整数を返します。 x パラメーターは数値を指定します。 |
| FLOAT8 | 数値の底e対数を返します。 x パラメーターは数値を指定します。 |
| FLOAT8 | 指定された底に対する数値の対数を返します。 x パラメーターは底を指定します。 y パラメーターは数値を指定します。 |
| FLOAT8 | 数値の10を底とする対数を返します。 x パラメーターは数値を指定します。 |
| 入力と同じ | 2進数を指定されたビット数だけ左シフトした後の結果を返します。 x パラメーターは2進数を指定します。 y パラメーターはビット数を指定します。 |
| FLOAT8 | ある数値を別の数値で割った余りを返します。 x パラメーターは被除数を指定します。 y パラメーターは除数を指定します。 |
| 入力と同じ | 数値の反対の値を返します。 x パラメーターは数値を指定します。 |
PI | FLOAT8 | 数学定数πを返します。 |
| FLOAT8 | ある数値を別の数値の累乗した値を返します。 y パラメーターの値は、x パラメーターの値を累乗する指数を指定します。 |
| FLOAT8 | 度で表された角度をラジアンに変換します。 x パラメーターは度単位の角度を指定します。 |
RAND | FLOAT8 | 0以上1未満の乱数を返します。 |
| 入力と同じ | 数値を最も近い整数に丸めた値を返します。 x パラメーターは数値を指定します。 |
| 入力と同じ | 2進数を指定されたビット数だけ右シフトした後の結果を返します。 x パラメーターは2進数を指定します。 y パラメーターはビット数を指定します。 |
| INT | 数値の符号を示す値を返します。 |
| 入力と同じ | 数値の平方根を返します。 x パラメーターは数値を指定します。 |
| DOUBLE | 数値を指定された小数点以下の桁数に切り詰めます。 x パラメーターは切り詰めたい数値を指定します。 y パラメーターは小数点以下の桁数を指定します。 y パラメーターはオプションです。 y パラメーターのデフォルト値は 0 です。 |
例
次の数学関数の例では、math_func_demoテーブルを使用しています。 math_func_demoテーブルには、次のデータが含まれています。
select * from math_func_demo;
+---------------+-----------------------+
| integer | float |
+---------------+-----------------------+
|2010|17.4| // math_func_demo テーブルのデータ
|-2002|-1.2|
|2001|1.2|
|6005|1.2|
+---------------+-----------------------+
ABS(x)
SELECT ABS(`integer`) FROM math_func_demo; +------------+ | EXPR$0 | // integer の絶対値 +------------+ | 2010 | | 2002 | | 2001 | | 6005 | +------------+ 4 rows selected (0.357 seconds)
CEIL(x)
SELECT CEIL(`float`) FROM math_func_demo; +------------+ | EXPR$0 | // float の切り上げ +------------+ | 18.0 | | -1.0 | | 2.0 | | 2.0 | +------------+ 4 rows selected (0.647 seconds)
FLOOR(x)
SELECT FLOOR(`float`) FROM math_func_demo; +------------+ | EXPR$0 | // float の切り捨て +------------+ | 17.0 | | -2.0 | | 1.0 | | 1.0 | +------------+ 4 rows selected (0.11 seconds)
ROUND(x) and ROUND(x, y): ROUND(x)関数の例は最も近い整数を返します。 Round (x, y)関数の例は、小数点以下4桁に丸めた概数を返します。
``bash SELECT ROUND(float`) FROM math_func_demo; +------------+ | EXPR$0 | // float の最も近い整数への丸め +------------+ | 3.0 | | -1.0 | | 1.0 | | 1.0 | +------------+ 4 rows selected (0.061 seconds) SELECT ROUND(float, 4) FROM math_func_demo; +------------+ | EXPR$0 | // float の小数点以下4桁への丸め +------------+ | 3.1416 | | -1.2 | | 1.2 | | 1.2 | +------------+ 4 rows selected (0.059 seconds)
LOG(x, y), LOG10(x), and LOG(x): LOG(x, y)関数の例は、64の2を底とする対数を返します。 LOG10(x)関数の例は、100の10を底とする対数を返します。 LOG(x)関数の例は、7.5の底e対数を返します。
```bash SELECT LOG(2, 64) FROM (VALUES(1)); +------------+ | EXPR$0 | // 64 の 2 を底とする対数 +------------+ | 6.0 | +------------+ 1 row selected (0.069 seconds) SELECT LOG10(100) FROM (VALUES(1)); +------------+ | EXPR$0 | // 100 の 10 を底とする対数 +------------+ | 2.0 | +------------+ 1 row selected (0.203 seconds) SELECT LOG(7.5) FROM (VALUES(1)); +---------------------+ | EXPR$0 | // 7.5 の e を底とする対数 +---------------------+ | 2.0149030205422647 | +---------------------+ 1 row selected (0.139 seconds)
三角関数
TSQLは、次の三角関数をサポートしています。これらの関数は、FLOAT8データ型の結果を返します。
SIN(x)
数値の正弦を返します。 x パラメーターは数値を指定します。COS(x)
数値の余弦を返します。 x パラメーターは数値を指定します。TAN(x)
数値の正接を返します。 x パラメーターは数値を指定します。ASIN(x)
数値の逆正弦を返します。 x パラメーターは数値を指定します。ACOS(x)
数値の逆余弦を返します。 x パラメーターは数値を指定します。ATAN(x)
数値の逆正接を返します。 x パラメーターは数値を指定します。SINH(x)
数値の双曲線正弦を返します。 x パラメーターは数値を指定します。COSH(x)
数値の双曲線余弦を返します。 x パラメーターは数値を指定します。TANH(x)
数値の双曲線正接を返します。 x パラメーターは数値を指定します。
例
SELECT RADIANS(30) AS Degrees FROM (VALUES(1)); // 30 度をラジアンに変換
+------------+
|Degrees| // ラジアン値
+------------+
|0.7853981633974483|
+------------+
1 row selected (0.045 seconds)
SELECT SIN(0.7853981633974483) AS `Sine of 30 degrees` FROM (VALUES(1)); // 45 度の正弦を計算 (ラジアンで指定)
+-----------------------+
|Sine of 45 degrees | // 45 度の正弦
+-----------------------+
|0.7071067811865475|
+-----------------------+
1 row selected (0.059 seconds)
SELECT TAN(0.7853981633974483) AS `Tangent of 30 degrees` from (VALUES(1)); // 45 度の正接を計算 (ラジアンで指定)
+-----------------------+
|Tangent of 45 degrees | // 45 度の正接
+-----------------------+
|0.9999999999999999|
+-----------------------+
文字列関数
次の表に、TSQLでサポートされている文字列関数を示します。
関数 | 戻り値の型 |
---|---|
CONCAT | VARCHAR |
INITCAP | VARCHAR |
LENGTH | INTEGER |
LOWER | VARCHAR |
LPAD | VARCHAR |
LTRIM | VARCHAR |
REGEXP_REPLACE | VARCHAR |
RPAD | VARCHAR |
RTRIM | VARCHAR |
STRPOS | INTEGER |
SUBSTR | VARCHAR |
TRIM | VARCHAR |
UPPER | VARCHAR |
例
CONCAT
構文:
CONCAT(string [,string [, ...]])
. この関数は文字列を連結します。SELECT CONCAT('Drill',' ',1.0,' ','release') FROM (VALUES(1)); +--------------------+ | EXPR$0 | // 連結された文字列 +--------------------+ |Drill1.0 release | +--------------------+ 1 row selected (0.134 seconds)
INITCAP
構文:
INITCAP(string)
. この関数は、各単語の最初の文字が大文字で、他のすべての文字が小文字である文字列を返します。SELECT INITCAP('china beijing') FROM (VALUES(1)); +---------------------------+ | EXPR$0 | // 単語の先頭が大文字に変換された文字列 +---------------------------+ |ChinaBeijing| +---------------------------+ 1 row selected (0.106 seconds)
LENGTH
構文:
LENGTH(string [, encoding])
. この関数は、文字列の文字数を返します。SELECT LENGTH('Hangzhou') FROM (VALUES(1)); +------------+ | EXPR$0 | // 文字列の長さ +------------+ |8| +------------+ 1 row selected (0.127 seconds)
LOWER
構文:
LOWER(string)
. この関数は、文字列の大文字を小文字に変換します。SELECT LOWER('China Beijing') FROM (VALUES(1)); +---------------+ | EXPR$0 | // 小文字に変換された文字列 +---------------+ | china beijing | +---------------+ 1 row selected (0.103 seconds)
LPAD
構文:
LPAD(string,length [, fill text])
. この関数は、スペースまたは指定された埋め込みテキストを使用して、文字列を指定された長さに左詰めします。埋め込み後の結果の文字列の長さが指定された長さを超える場合、結果の文字列は指定された長さに切り詰められます。SELECT LPAD('hi',5,'xy') FROM (VALUES(1)); +------------------------------+ | EXPR$0 | // 左詰めされた文字列 +------------------------------+ | xyxhi | +------------------------------+ 1 row selected (0.132 seconds)
LTRIM
構文:
LTRIM(string1, string2)
. この関数は、文字列の左側から指定された文字を削除します。 string1パラメーターは、文字を削除する元の文字列を指定します。 string2パラメーターは、削除する文字を指定します。SELECT LTRIM('zzzytest','xyz') FROM (VALUES(1)); +------------+ | EXPR$0 | // 左側から文字が削除された文字列 +------------+ | test | +------------+ 1 row selected (0.131 seconds)
REGEXP_REPLACE
構文:
REGEXP_REPLACE(source_char, pattern, replacement)
. この関数は、文字列でJava正規表現パターンを検索し、パターンの出現ごとに指定された文字に置き換えます。SELECT REGEXP_REPLACE('abc, acd, ade, aef','a','b') FROM (VALUES(1)); +---------------------+ | EXPR$0 | // 'a' が 'b' に置換された文字列 +---------------------+ | bbc, bcd, bde, bef | +---------------------+ 1 row selected (0.105 seconds) SELECT REGEXP_REPLACE('abc, acd, ade, aef','a.','b') FROM (VALUES(1)); +-----------------+ | EXPR$0 | // 'a.' が 'b' に置換された文字列 +-----------------+ | bc, bd, be, bf | +-----------------+ 1 row selected (0.113 seconds)
RPAD
構文:
RPAD (string, length [, fill text])
. この関数は、スペースまたは埋め込みテキストを使用して、文字列を指定された長さに右詰めします。埋め込みテキストを指定しない場合、または埋め込みテキストで文字列を指定された長さに埋め込むことができない場合、元の文字列の末尾にスペース、または指定された埋め込みテキストが指定された長さまで追加されます。 埋め込み後の結果の文字列の長さが指定された長さを超える場合、結果の文字列は指定された長さに切り詰められます。SELECT RPAD('hi',5,'xy') FROM (VALUES(1)); +-------------------------+ | EXPR$0 | // 右詰めされた文字列 +-------------------------+ | hixyx | +-------------------------+ 1 row selected (0.107 seconds)
RTRIM
構文:
RTRIM(string1, string2)
. この関数は、文字列の右側から指定された文字を削除します。 string1パラメーターは、文字を削除する元の文字列を指定します。 string2パラメーターは、削除する文字を指定します。SELECT RTRIM('testxxzx','xyz')from(VALUES(1)); +--------------------+ | EXPR$0 | // 右側から文字が削除された文字列 +--------------------+ | tes | +--------------------+ 1 row selected (0.102 seconds)
STRPOS
構文:
STRPOS(string, substring)
. この関数は、文字列内の部分文字列の位置を返します。SELECT STRPOS('high','ig') FROM (VALUES(1)); +------------+ | EXPR$0 | // 部分文字列の位置 +------------+ |2| +------------+ 1 row selected (0.22 seconds)
SUBSTR
構文:
SUBSTR(string, x, y)
. この関数は、文字列の部分文字列を返します。 x パラメーターは、返される部分文字列に含める最初の文字のインデックスを指定します。 y パラメーターは、返される部分文字列に含める最後の文字のインデックスを指定します。 y パラメーターはオプションです。SELECT SUBSTR('China Beijing',7) FROM (VALUES(1)); +------------+ | EXPR$0 | // 部分文字列 +------------+ |Beijing| +------------+ 1 row selected (0.134 seconds) SELECT SUBSTR('China Beijing',3,2) FROM (VALUES(1)); +------------+ | EXPR$0 | // 部分文字列 +------------+ |in| +------------+ 1 row selected (0.129 seconds)
TRIM
構文:
TRIM ([leading | trailing | both] [string1] from string2)
. この関数は、文字列の左側、右側、または両側から指定された文字を削除します。 string1パラメーターは、削除する文字列を指定します。 string2パラメーターは、元の文字列を指定します。SELECT TRIM(trailing 'A'from'AABBAA') FROM (VALUES(1)); +------------+ | EXPR$0 | // 末尾の 'A' が削除された文字列 +------------+ | AABB | +------------+ 1 row selected (0.172 seconds) SELECT TRIM(both 'A'from'AABBAA') FROM (VALUES(1)); +---------------+ | EXPR$0 | // 両側の 'A' が削除された文字列 +---------------+ | BB | +---------------+ 1 row selected (0.104 seconds) SELECT TRIM(leading 'A'from'AABBAA') FROM (VALUES(1)); +-----------------+ | EXPR$0 | // 先頭の 'A' が削除された文字列 +-----------------+ | BBAA | +-----------------+ 1 row selected (0.101 seconds)
UPPER
構文:
UPPER(string)
. この関数は、文字列の小文字を大文字に変換します。SELECT UPPER('china beijing') FROM (VALUES(1)); +---------------+ | EXPR$0 | // 大文字に変換された文字列 +---------------+ | CHINA BEIJING | +---------------+ 1 row selected (0.081 seconds)
タイムスタンプ関数
次の表に、TSQLでサポートされているタイムスタンプ関数を示します。
関数 | 戻り値の型 | 説明 | 例 |
---|---|---|---|
| timestamp | 現在のタイムスタンプを返します。 |
|
| timestamp | 現在のタイムスタンプを返します。 |
|
| date | 現在の日日を返します。 |
|
| time | 現在の時刻を返します。戻り値には日付情報は含まれません。 | なし |
| integer | タイムスタンプ、日付、または時刻から年、月、日、時、分、または秒の成分を抽出します。 |
|
| timestamp | 指定されたタイムスタンプを含むタンブリング時間枠の下限を返します。 |
|
| timestamp | タイムスタンプから指定された間隔を減算した後の新しいタイムスタンプを返します。 |
|
| timestamp | タイムスタンプに指定された間隔を追加した後の新しいタイムスタンプを返します。 |
|
次のステートメントは、タイムスタンプ関数の使用方法の例を示しています。
SELECT CURRENT_DATE FROM (VALUES(1));
+---------------+
| CURRENT_DATE | // 現在の日付
+---------------+
|2019-11-27|
+---------------+
SELECT EXTRACT(hour FROM TIME '17:12:28.5') FROM (VALUES(1));
+---------+
| EXPR$0 | // 時の抽出
+---------+
|17|
+---------+
SELECT EXTRACT(SECOND FROM TIMESTAMP '2001-02-16 20:38:40') FROM (VALUES(1));
+---------+
| EXPR$0 | // 秒の抽出
+---------+
|40.0|
+---------+
SELECT DATE_DIFF(TIMESTAMP '2001-02-16 20:38:40', interval '5' minute) FROM (VALUES(1));
+------------------------+
| EXPR$0 | // 5分前のタイムスタンプ+------------------------+
|2001-02-1620:33:40.0|
+------------------------+
SELECT DATE_ADD(TIMESTAMP '2001-02-16 20:38:40', interval '5' minute) FROM (VALUES(1));
+------------------------+
| EXPR$0 | // 5分後のタイムスタンプ
+------------------------+
|2001-02-1620:43:40.0|
+------------------------+
SELECT tumble(TIMESTAMP '2001-02-16 20:38:40', interval '5' minute) FROM (VALUES(1));
+------------------------+
| EXPR$0 | // 5分間隔のタンブリング時間枠の下限
+------------------------+
|2001-02-1620:35:00.0|
+------------------------+
データ型変換関数
CAST
CAST関数は、式の評価値をあるデータ型から別のデータ型に変換します。
構文
CAST (<expression> AS <data type>)
expression
データ型を変換する1つ以上の値を指定します。式は、評価できる演算子とSQL関数の組み合わせです。
data type
指定された値を変換する先のデータ型を指定します。たとえば、INTEGERまたはDATEを指定できます。
次のステートメントは、文字列を数値に変換する方法、数値を文字列に変換する方法、およびある数値型の数値を別の数値型の数値に変換する方法の例を示しています。
SELECT CAST(456as VARCHAR(3)) FROM (VALUES(1)); +------------+ | EXPR$0 | // 数値を VARCHAR に変換 +------------+ |456| +------------+ 1 row selected (0.08 seconds) SELECT CAST(456as CHAR(3)) FROM (VALUES(1)); +------------+ | EXPR$0 | // 数値を CHAR に変換 +------------+ |456| +------------+ 1 row selected (0.093 seconds)
タイムスタンプ、日付、および時刻のデータ型を変換する関数
TSQLは、次の例に示す日付と時刻の形式をサポートしています。
2008-12-15
22:55:55.123…
日付と時刻が他の形式を使用している場合は、データ型変換関数を使用して次の操作を実行します。
TIMESTAMP、DATE、TIME、INTEGER、FLOAT、またはDOUBLEデータ型の値をVARCHARデータ型の文字列に変換します。
文字列をDATEデータ型の値に変換します。
文字列をNUMBERデータ型の値に変換します。
次の表に、TSQLクエリで使用できるデータ型変換関数を示します。
関数 | 戻り値の型 |
---|---|
TO_CHAR(expression, format) | VARCHAR |
TO_DATE(expression, format) | DATE |
TO_TIMESTAMP(VARCHAR, format) | TIMESTAMP |
TO_TIMESTAMP(DOUBLE) | TIMESTAMP |
日付と時刻の変換のフォーマット指定子
次の表に、日付と時刻の変換に使用できるJoda-Timeフォーマット指定子を示します。
記号 | 意味 | 表示 | 例 |
---|---|---|---|
G | 時代 | テキスト | AD |
C | 世紀(>=0) | 数値 | 20 |
Y | 年(>=0) | 年 | 1996 |
x | 週年 | 年 | 1996 |
w | 数値 | 27 | |
e | 曜日 | 数値 | 2 |
E | 曜日 | テキスト | Tuesday; Tue |
y | 年 | 年 | 1996 |
D | 年の通算日 | 数値 | 189 |
M | 月 | 月 | July; Jul; 07 |
d | 日 | 数値 | 10 |
a | 午前/午後 | テキスト | PM |
K | 午前/午後の時(0~11) | 数値 | 0 |
h | 午前/午後の時(1~12) | 数値 | 12 |
H | 時(0~23) | 数値 | 0 |
k | 時(1~24) | 数値 | 24 |
m | 分 | 数値 | 30 |
s | 秒 | 数値 | 55 |
S | ミリ秒 | 数値 | 978 |
z | タイムゾーン | テキスト | Pacific Standard Time; PST |
Z | タイムゾーンオフセット/ID | ゾーン | -0800; -08:00; America/Los_Angeles |
' | 単一引用符、テキスト区切り文字のエスケープ | リテラル | なし |
TO_CHARの例
数値、日付、時刻、またはタイムスタンプ式を文字列に変換します。
SELECT TO_CHAR(1256.789383,'#,###.###') FROM (VALUES(1)); +------------+ | EXPR$0 | // フォーマットされた数値文字列 +------------+ |1,256.789| +------------+ 1 row selected (1.767 seconds) SELECT TO_CHAR(125677.4567,'#,###.###') FROM (VALUES(1)); +--------------+ | EXPR$0 | //フォーマットされた数値文字列 +--------------+ |125,677.457| +--------------+ 1 row selected (0.083 seconds) SELECT TO_CHAR((CAST('2008-2-23' AS DATE)),'yyyy-MMM-dd') FROM (VALUES(1)); +--------------+ | EXPR$0 | // フォーマットされた日付文字列 +--------------+ |2008-Feb-23| +--------------+ 1 row selected (0.166 seconds) SELECT TO_CHAR(CAST('12:20:30' AS TIME),'HH mm ss') FROM (VALUES(1)); +------------+ | EXPR$0 | // フォーマットされた時刻文字列 +------------+ |122030| +------------+ 1 row selected (0.07 seconds) SELECT TO_CHAR(CAST('2015-2-23 12:00:00' AS TIMESTAMP),'yyyy MMM dd HH:mm:ss') FROM (VALUES(1)); +-----------------------+ | EXPR$0 | // フォーマットされたタイムスタンプ文字列 +-----------------------+ |2015Feb2312:00:00| +-----------------------+ 1 row selected (0.142 seconds)
TO_DATEの例
文字列を日付に変換します。
SELECT TO_DATE('2015-FEB-23','yyyy-MMM-dd') FROM (VALUES(1)); +------------+ | EXPR$0 | // 日付 +------------+ |2015-02-23| +------------+ 1 row selected (0.077 seconds) SELECT EXTRACT(year from mydate)`extracted year` FROM (SELECT TO_DATE('2015-FEB-23','yyyy-MMM-dd') AS mydate FROM (VALUES(1))); +------------+ | myyear | // 年の抽出 +------------+ |2015| +------------+ 1 row selected (0.128 seconds)
UNIXタイムスタンプを日付に変換します。
SELECT TO_DATE(1427849046000) FROM (VALUES(1)); +------------+ | EXPR$0 | // 日付 +------------+ |2015-04-01| +------------+ 1 row selected (0.082 seconds)
TO_TIMEの例
文字列をタイムスタンプに変換します。
SELECT to_time(82855000) FROM (VALUES(1)); +------------+ | EXPR$0 | // 時刻 +------------+ | 23:00:55 | +------------+ 1 row selected (0.086 seconds)
TO_TIMESTAMPの例
日付をタイムスタンプに変換します。
```sql SELECT TO_TIMESTAMP('2008-2-23 12:00:00', 'yyyy-MM-dd HH:mm:ss') FROM (VALUES(1)); +------------------------+ | EXPR$0 | // タイムスタンプ +------------------------+ | 2008-02-23 12:00:00.0 | +------------------------+ 1 row selected (0.126 seconds)
UNIX時間値をタイムスタンプに変換します。
SELECT TO_TIMESTAMP(1427936330) FROM (VALUES(1)); +------------------------+ | EXPR$0 | // タイムスタンプ +------------------------+ | 2015-04-01 17:58:50.0 | +------------------------+ 1 row selected (0.114 seconds)
UTC日付を、値にタイムゾーンオフセットを含むタイムスタンプに変換します。
SELECT TO_TIMESTAMP('2015-03-30 20:49:59.0 UTC', 'YYYY-MM-dd HH:mm:ss.s z') AS Original, TO_CHAR(TO_TIMESTAMP('2015-03-30 20:49:59.0 UTC', 'YYYY-MM-dd HH:mm:ss.s z'), 'z') AS New_TZ FROM (VALUES(1)); +------------------------+---------+ | Original | New_TZ | // タイムスタンプとタイムゾーン +------------------------+---------+ | 2015-03-30 20:49:00.0 | UTC | +------------------------+---------+ 1 row selected (0.148 seconds)