タイムゾーンの設定
このトピックでは、タイムゾーンの設定方法とその影響について説明します。
セッションレベルまたはグローバルタイムゾーンの設定
StarRocks クラスターのセッションレベルまたはグローバルタイムゾーンを time_zone パラメータを使用して設定できます。
- セッションレベルのタイムゾーンを設定するには、コマンド SET time_zone = 'xxx';を実行します。異なるセッションに対して異なるタイムゾーンを設定できます。FEs との接続が切れると、タイムゾーン設定は無効になります。
- グローバルタイムゾーンを設定するには、コマンド SET global time_zone = 'xxx';を実行します。タイムゾーン設定は FEs に保存され、FEs との接続が切れても有効です。
Note
StarRocks にデータをロードする前に、StarRocks クラスターのグローバルタイムゾーンを
system_time_zoneパラメータと同じ値に変更してください。そうしないと、データロード後に DATE 型のデータが正しくなくなります。system_time_zoneパラメータは、FEs をホストするマシンのタイムゾーンを指します。マシンが起動されると、そのタイムゾーンがこのパラメータの値として記録されます。このパラメータを手動で設定することはできません。
タイムゾーン形式
time_zone パラメータの値は大文字と小文字を区別しません。このパラメータの値は次の形式のいずれかで指定できます。
| Format | Example | 
|---|---|
| UTC offset | SET time_zone = '+10:00';SET global time_zone = '-6:00'; | 
| Time zone name | SET time_zone = 'Asia/Shanghai';SET global time_zone = 'America/Los_Angeles'; | 
タイムゾーン形式の詳細については、List of tz database time zones を参照してください。
Note
CST を除くタイムゾーンの略語はサポートされていません。
time_zoneの値をCSTに設定すると、StarRocks はCSTをAsia/Shanghaiに変換します。
デフォルトタイムゾーン
time_zone パラメータのデフォルト値は Asia/Shanghai です。
タイムゾーン設定の表示
タイムゾーン設定を表示するには、次のコマンドを実行します。
 SHOW VARIABLES LIKE '%time_zone%';
タイムゾーン設定の影響
- タイムゾーン設定は、SHOW LOAD および SHOW BACKENDS ステートメントによって返される時間値に影響します。ただし、CREATE TABLE ステートメントで指定されたパーティション列が DATE または DATETIME 型の場合、LESS THAN句で指定された値には影響しません。また、DATE および DATETIME 型のデータにも影響しません。
- タイムゾーン設定は、次の関数の表示とストレージに影響します。
- from_unixtime: 指定された UTC タイムスタンプに基づいて、指定されたタイムゾーンの日付と時間を返します。たとえば、StarRocks クラスターのグローバルタイムゾーンが Asia/Shanghaiの場合、select FROM_UNIXTIME(0);は1970-01-01 08:00:00を返します。
- unix_timestamp: 指定されたタイムゾーンの日付と時間に基づいて UTC タイムスタンプを返します。たとえば、StarRocks クラスターのグローバルタイムゾーンが Asia/Shanghaiの場合、select UNIX_TIMESTAMP('1970-01-01 08:00:00');は0を返します。
- curtime: 指定されたタイムゾーンの現在の時間を返します。たとえば、指定されたタイムゾーンの現在の時間が 16:34:05 の場合、select CURTIME();は16:34:05を返します。
- now: 指定されたタイムゾーンの現在の日付と時間を返します。たとえば、指定されたタイムゾーンの現在の日付と時間が 2021-02-11 16:34:13 の場合、select NOW();は2021-02-11 16:34:13を返します。
- convert_tz: 日付と時間をあるタイムゾーンから別のタイムゾーンに変換します。たとえば、select CONVERT_TZ('2021-08-01 11:11:11', 'Asia/Shanghai', 'America/Los_Angeles');は2021-07-31 20:11:11を返します。
 
- from_unixtime: 指定された UTC タイムスタンプに基づいて、指定されたタイムゾーンの日付と時間を返します。たとえば、StarRocks クラスターのグローバルタイムゾーンが