Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

MINUTE (SQL)

日付/時刻式に対して分を返す時刻関数です。

Synopsis

{fn MINUTE(time-expression)}

引数

引数 説明
time-expression 列の名前や、他のスカラ関数の結果、または文字列や日付や数値リテラルである式。日付/時刻文字列または時刻整数に解決される必要があります。基本となるデータ型は、%Time、%TimeStamp、または %PosixTime とすることができます。

概要

MINUTE は、指定された時刻または日付/時刻値に対して分の部分を示す整数を返します。分は、$HOROLOG 値や $ZTIMESTAMP 値、ODBC 形式の日付文字列、またはタイムスタンプに基づいて計算されます。

time-expression タイムスタンプには、データ型 %Library.PosixTimeOpens in a new tab (エンコードされた 64 ビットの符号付き整数) またはデータ型 %Library.TimeStampOpens in a new tab (yyyy-mm-dd hh:mm:ss.fff) のいずれかを指定できます。

既定の時刻形式を変更するには、SET OPTION コマンドを使用します。

時刻整数 (経過秒数) は指定できますが、時刻文字列 (hh:mm:ss) は指定できません。 日付/時刻文字列 (yyyy-mm-dd hh:mm:ss) を指定する必要があります。

日付/時刻文字列の時刻部分は有効な時刻である必要があります。それ以外の場合には、SQLCODE -400 エラー <ILLEGAL VALUE> が生成されます。分 (mm) 部分は、0 から 59 までの範囲の整数である必要があります。入力では、先頭のゼロはオプションです。出力では、先頭のゼロは抑制されます。日付/時刻文字列の秒 (:ss) 部分を省略しても、分部分を返すことができます。

日付/時刻文字列の日付部分は検証されません。

分部分が '0' または '00' の場合、MINUTE はゼロ分を返します。また、時刻式が指定されていない場合、または時刻式の分部分が完全に省略されている場合 ('hh'、'hh:'、'hh::'、または 'hh::ss') にも、ゼロ分が返されます。

DATEPART または DATENAME を使用して、同じ時刻情報を取得できます。

この関数は、ObjectScript から MINUTE()Opens in a new tab メソッド・コールを使用して呼び出すこともできます。

$SYSTEM.SQL.Functions.MINUTE(time-expression)

以下の例は、日付/時刻文字列の時刻式が 45 分を表しているので、両方とも 45 を返します。

SELECT {fn MINUTE('2018-02-16 18:45:38')} AS ODBCMinutes
SELECT {fn MINUTE(67538)} AS HorologMinutes

以下の例も 45 を返します。ここに示すように、時刻値の秒部分は省略できます。

SELECT {fn MINUTE('2018-02-16 18:45')} AS Minutes_Given

以下の例は、日付/時刻文字列から時刻式が省略されているので、ゼロ分を返します。

SELECT {fn MINUTE('2018-02-16')} AS Minutes_Given

以下の例はすべて、現在の時刻の分部分を返します。

SELECT {fn MINUTE(CURRENT_TIME)} AS Min_CurrentT,
       {fn MINUTE({fn CURTIME()})} AS Min_CurT,
       {fn MINUTE({fn NOW()})} AS Min_Now,
       {fn MINUTE($HOROLOG)} AS Min_Horolog,
       {fn MINUTE($ZTIMESTAMP)} AS Min_ZTS

以下の例は、先頭のゼロが抑制されることを示します。最初の MINUTE 関数は長さ 2 を返し、その他は長さ 1 を返します。省略された時刻はゼロ分と見なされ、1 の長さを持ちます。

SELECT LENGTH({fn MINUTE('2018-02-22 11:45:00')}),
       LENGTH({fn MINUTE('2018-02-22 03:05:00')}),
       LENGTH({fn MINUTE('2018-02-22 3:5:0')}),
       LENGTH({fn MINUTE('2018-02-22')})

以下の埋め込み SQL の例では、MINUTE 関数が、ロケールに指定された TimeSeparator 文字を認識していることを示しています。

  DO ##class(%SYS.NLS.Format).SetFormatItem("TimeSeparator",".")
  &sql(SELECT {fn MINUTE('2018-02-22 18.45.38')} INTO :a)
  QUIT:(SQLCODE '= 0)
  WRITE "minutes=",a

関連項目

FeedbackOpens in a new tab