日付と時刻の関数
TiDB は、 MySQL 5.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 年以降の秒数に変換された date または datetime 引数を返します。 |
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」 | 英語の接尾語が付いた日付 (0th、1st、2nd、3rd) |
「%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()
関数に影響します。