時刻、日付、および間隔を扱う関数
次の表に、ODBC スカラー関数セットに含まれる時刻関数と日付関数を示します。 アプリケーションは、情報の種類が SQL_TIMEDATE_FUNCTIONS の SQLGetInfo を呼び出すことによって、ドライバーでサポートされている時刻と日付の関数を決定できます。
timestamp_expとして示される引数には、列の名前、別のスカラー関数の結果、ODBC-time-escape、ODBC-date-escape、ODBC-timestamp-escape のいずれかを指定できます。基になるデータ型は、SQL_CHAR、SQL_VARCHAR、SQL_TYPE_TIME、SQL_TYPE_DATE、またはSQL_TYPE_TIMESTAMPとして表すことができます。
date_expとして示される引数には、列の名前、別のスカラー関数の結果、または基になるデータ型をSQL_CHAR、SQL_VARCHAR、SQL_TYPE_DATE、またはSQL_TYPE_TIMESTAMPとして表すことができる ODBC-date-escape または ODBC-timestamp-escape を指定できます。
time_expとして示される引数には、列の名前、別のスカラー関数の結果、または基になるデータ型をSQL_CHAR、SQL_VARCHAR、SQL_TYPE_TIME、またはSQL_TYPE_TIMESTAMPとして表すことができる ODBC-time-escape または ODBC-timestamp-escape を指定できます。
SQL-92 に合わせて、ODBC 3.0 にCURRENT_DATE、CURRENT_TIME、CURRENT_TIMESTAMPのタイム日付スカラー関数が追加されました。
機能 | 説明 |
---|---|
CURRENT_DATE( ) (ODBC 3.0) | 現在の日付を返します。 |
CURRENT_TIME[(time-precision)] (ODBC 3.0) | 現在のローカル時間を返します。 time-precision 引数は、返される値の秒の有効桁数を決定します。 |
CURRENT_TIMESTAMP [(timestamp-precision)] (ODBC 3.0) |
現在のローカル日付と現地時刻をタイムスタンプ値として返します。 timestamp-precision 引数は、返されるタイムスタンプの秒の有効桁数を決定します。 |
CURDATE( ) (ODBC 1.0) | 現在の日付を返します。 |
CURTIME( ) (ODBC 1.0) | 現在のローカル時間を返します。 |
DAYNAME(date_exp) (ODBC 2.0) | 日付のデータ ソース固有の名前を含む文字列を返します (たとえば、英語を使用するデータ ソースの場合は日曜日から土曜日、日曜日は Sat を、ドイツ語を使用するデータ ソースの場合は Sonntag から Samstag date_exp)。 |
DAYOFMONTH(date_exp) (ODBC 1.0) | date_expの月フィールドに基づいて、1 から 31 の範囲の整数値として月の日を返します。 |
DAYOFWEEK(date_exp) (ODBC 1.0) | date_expの週フィールドに基づいて曜日を 1 から 7 の範囲の整数値として返します。1 は日曜日を表します。 |
DAYOFYEAR(date_exp) (ODBC 1.0) | date_expの年フィールドに基づいて、年の日を 1 から 366 の範囲の整数値として返します。 |
EXTRACT(extract-field FROMextract-source) (ODBC 3.0) | 抽出元の抽出フィールド部分を返します。 extract-source 引数は、datetime または interval 式です。 引数 extract-field には、次のいずれかのキーワードを指定できます。 年月日時間分秒 戻り値の有効桁数は実装定義です。 SECOND を指定しない限り、小数点以下桁数は 0 です。この場合、小数点以下桁数は 抽出元 フィールドの秒の小数部の有効桁数より小さくはありません。 |
HOUR(time_exp) (ODBC 1.0) | time_expの hour フィールドに基づいて、0 から 23 の範囲の整数値として時間を返します。 |
MINUTE(time_exp) (ODBC 1.0) | time_expの minute フィールドに基づいて、0 から 59 の範囲の整数値として分を返します。 |
MONTH(date_exp) (ODBC 1.0) | date_expの月フィールドに基づいて、1 から 12 の範囲の整数値として月を返します。 |
MONTHNAME(date_exp) (ODBC 2.0) | 月のデータ ソース固有の名前を含む文字列を返します (たとえば、1 月から 12 月または 1 月から 12 月。英語を使用するデータ ソースの場合は 、ドイツ語を使用するデータ ソースの場合は Januar から Dezember)。 date_expの月の部分。 |
NOW( ) (ODBC 1.0) | 現在の日付と時刻をタイムスタンプ値として返します。 |
QUARTER(date_exp) (ODBC 1.0) | date_expの四半期を 1 から 4 の範囲の整数値として返します。1 は 1 月 1 日から 3 月 31 日を表します。 |
SECOND(time_exp) (ODBC 1.0) | time_expの 2 番目のフィールドに基づいて、0 から 59 の範囲の整数値として 2 番目の フィールドを返します。 |
TIMESTAMPADD(interval, integer_exp, timestamp_exp) (ODBC 2.0) | timestamp_expにinterval 型の間隔integer_exp加算して計算されたタイムスタンプを返します。 interval の有効な値は、次のキーワードです。 SQL_TSI_FRAC_SECOND SQL_TSI_SECOND SQL_TSI_MINUTE SQL_TSI_HOUR SQL_TSI_DAY SQL_TSI_WEEK SQL_TSI_MONTH SQL_TSI_QUARTER SQL_TSI_YEAR 小数部の秒は、1 秒の 10 億分の 1 で表されます。 たとえば、次の SQL ステートメントは、各従業員の名前と 1 年の記念日を返します。 SELECT NAME, {fn TIMESTAMPADD(SQL_TSI_YEAR, 1, HIRE_DATE)} FROM EMPLOYEES timestamp_expが時間値で、間隔に日、週、月、四半期、または年が指定されている場合、timestamp_expの日付部分は、結果のタイムスタンプを計算する前に現在の日付に設定されます。 timestamp_expが日付値で、間隔で秒、秒、分、または時間の小数部が指定されている場合、結果のタイムスタンプを計算する前に、timestamp_expの時間部分は 0 に設定されます。 アプリケーションは、SQL_TIMEDATE_ADD_INTERVALS オプションを使用して SQLGetInfo を呼び出すことによって、データ ソースがサポートする間隔を決定します。 |
TIMESTAMPDIFF(interval, timestamp_exp1, timestamp_exp2) (ODBC 2.0) | timestamp_exp2がtimestamp_exp1より大きい型の間隔の整数を返します。 interval の有効な値は、次のキーワードです。 SQL_TSI_FRAC_SECOND SQL_TSI_SECOND SQL_TSI_MINUTE SQL_TSI_HOUR SQL_TSI_DAY SQL_TSI_WEEK SQL_TSI_MONTH SQL_TSI_QUARTER SQL_TSI_YEAR 小数部の秒は、1 秒の 10 億分の 1 で表されます。 たとえば、次の SQL ステートメントは、各従業員の名前と、その従業員が雇用された年数を返します。 SELECT NAME, {fn TIMESTAMPDIFF(SQL_TSI_YEAR, {fn CURDATE()}, HIRE_DATE)} FROM EMPLOYEES いずれかの timestamp 式が時間値で、 間隔 で日、週、月、四半期、または年が指定されている場合、タイムスタンプの日付部分は、タイムスタンプ間の差を計算する前に現在の日付に設定されます。 いずれかのタイムスタンプ式が日付値で 、間隔 で秒、秒、分、または時間の小数部が指定されている場合、タイムスタンプ間の差を計算する前に、そのタイムスタンプの時間部分は 0 に設定されます。 アプリケーションは、SQL_TIMEDATE_DIFF_INTERVALS オプションを使用して SQLGetInfo を呼び出すことによって、データ ソースがサポートする間隔を決定します。 |
WEEK(date_exp) (ODBC 1.0) | date_expの週フィールドに基づいて、1 から 53 の範囲の整数値として年の週を返します。 |
YEAR(date_exp) (ODBC 1.0) | date_expの year フィールドに基づいて整数値として年を返します。 範囲はデータ ソースに依存します。 |
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示