日付と時刻の関数
TiDBは、MySQL5.7で利用可能な日付と時刻の関数すべてをサポートします。
ノート:
- MySQLは、誤ってフォーマットされた日付と時刻の値を受け入れることがよくあります。たとえば、
'2020-01-01\n\t01:01:01'
と'2020-01_01\n\t01:01'
は有効な日付と時刻の値として扱われます。- TiDBは、MySQLの動作と一致するように最善を尽くしますが、すべてのインスタンスで一致するとは限りません。日付を正しくフォーマットすることをお勧めします。これは、誤ってフォーマットされた値の意図された動作が文書化されておらず、一貫性がないことが多いためです。
日付/時刻関数:
名前 | 説明 |
---|---|
ADDDATE() | 日付値に時間値(間隔)を追加します |
ADDTIME() | 時間を追加する |
CONVERT_TZ() | あるタイムゾーンから別のタイムゾーンに変換する |
CURDATE() | 現在の日付を返す |
CURRENT_DATE() 、 CURRENT_DATE | CURDATE()の同義語 |
CURRENT_TIME() 、 CURRENT_TIME | CURTIME()の同義語 |
CURRENT_TIMESTAMP() 、 CURRENT_TIMESTAMP | NOW()の同義語 |
CURTIME() | 現在の時刻を返す |
DATE() | 日付または日時式の日付部分を抽出します |
DATE_ADD() | 日付値に時間値(間隔)を追加します |
DATE_FORMAT() | 指定された日付をフォーマットします |
DATE_SUB() | 日付から時間値(間隔)を減算します |
DATEDIFF() | 2つの日付を引く |
DAY() | DAYOFMONTH()の同義語 |
DAYNAME() | 平日の名前を返す |
DAYOFMONTH() | 月の日を返す(0-31) |
DAYOFWEEK() | 引数の平日インデックスを返します |
DAYOFYEAR() | 年の日を返す(1-366) |
EXTRACT() | 日付の一部を抽出する |
FROM_DAYS() | 日番号を日付に変換する |
FROM_UNIXTIME() | Unixタイムスタンプを日付としてフォーマットする |
GET_FORMAT() | 日付形式の文字列を返します |
HOUR() | 時間を抽出する |
LAST_DAY | 引数の月末日を返す |
LOCALTIME() 、 LOCALTIME | NOW()の同義語 |
LOCALTIMESTAMP 、 LOCALTIMESTAMP() | NOW()の同義語 |
MAKEDATE() | 年と日から日付を作成します |
MAKETIME() | 時間、分、秒から時間を作成します |
MICROSECOND() | 引数からマイクロ秒を返す |
MINUTE() | 引数から分を返す |
MONTH() | 渡された日付から月を返します |
MONTHNAME() | 月の名前を返します |
NOW() | 現在の日付と時刻を返す |
PERIOD_ADD() | 年月に期間を追加する |
PERIOD_DIFF() | 期間間の月数を返します |
QUARTER() | 日付引数から四半期を返す |
SEC_TO_TIME() | 秒を「HH:MM:SS」形式に変換します |
SECOND() | 2番目を返す(0-59) |
STR_TO_DATE() | 文字列を日付に変換する |
SUBDATE() | 3つの引数で呼び出された場合のDATE_SUB()の同義語 |
SUBTIME() | 減算時間 |
SYSDATE() | 関数が実行される時間を返します |
TIME() | 渡された式の時間部分を抽出します |
TIME_FORMAT() | 時間としてフォーマット |
TIME_TO_SEC() | 秒に変換された引数を返します |
TIMEDIFF() | 減算時間 |
TIMESTAMP() | 引数が1つの場合、この関数は日付または日時の式を返します。 2つの引数を使用して、引数の合計 |
TIMESTAMPADD() | 日時式に間隔を追加する |
TIMESTAMPDIFF() | 日時式から間隔を減算します |
TO_DAYS() | 日に変換された日付引数を返します |
TO_SECONDS() | 0年以降の秒に変換された日付または日時引数を返します |
UNIX_TIMESTAMP() | Unixタイムスタンプを返す |
UTC_DATE() | 現在のUTC日付を返します |
UTC_TIME() | 現在のUTC時刻を返します |
UTC_TIMESTAMP() | 現在のUTC日時を返します |
WEEK() | 週番号を返す |
WEEKDAY() | 平日のインデックスを返す |
WEEKOFYEAR() | 日付の暦週を返す(1-53) |
YEAR() | 年を返す |
YEARWEEK() | 年と週を返す |
詳細については、 日付と時刻の関数を参照してください。
MySQLの互換性
関数str_to_date()
はTiDBでサポートされていますが、すべての日付と時刻の値を解析することはできません。さらに、次の日付と時刻の書式設定オプションは実装されていません。
フォーマット | 説明 |
---|---|
"%a" | 平日の略称(日・土) |
"%D" | 英語の接尾辞が付いた月の日(0日、1日、2日、3日) |
"%U" | 週(00..53)、ここで日曜日は週の最初の日です。 WEEK()モード0 |
「%u」 | 週(00..53)。月曜日が週の最初の日です。 WEEK()モード1 |
"%V" | 週(01..53)、ここで日曜日は週の最初の日です。 WEEK()モード2; %Xで使用 |
"%v" | 週(01..53)、月曜日は週の最初の日です。 WEEK()モード3; %xで使用 |
"%W" | 平日の名前(日曜日..土曜日) |
"%w" | 曜日(0=日曜日..6=土曜日) |
"%バツ" | 日曜日が週の最初の日である週の年、数値、4桁。 |
"%バツ" | 週の年。月曜日は週の最初の日で、数値は4桁です。 |
詳細については、 問題#30082を参照してください。
関連するシステム変数
default_week_format
変数はWEEK()
関数に影響します。