日付と時刻関数
TiDB は、MySQL 8.0 で利用可能な日付と時刻関数のすべてをサポートします。
注記:
- 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() | 秒を返す (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=土曜日) |
「%X」 | 日曜日を週の最初の日とする週の年、数字、4 桁。 |
"%x" | 週の年。月曜日を週の最初の日とする、数字 4 桁。 |
詳細は問題 #30082参照してください。
関連するシステム変数
default_week_format
変数はWEEK()
関数に影響します。