TRUNC
関数を使用して、dateTime
値をより粗い粒度に丸めることができます。
たとえば、これは、各四半期の取引明細書結果データをdateTime
属性を使用してグループ化する場合に役立ちます。
TRUNC
関数の構文は、次のとおりです:
<TruncExpr> ::= TRUNC(<expr>,<DateTimeUnit>) <dateTimeUnit> ::= MILLISECOND| SECOND | MINUTE | HOUR | DATE | WEEK | MONTH | QUARTER | YEAR DAY_OF_WEEK | DAY_OF_MONTH | DAY_OF_YEAR JULIAN_DAY_NUMBER
注意:
WEEK
により、直前の日曜日に切り捨てられます。
dateTime
属性TimeStampには10/13/2015 11:35:12.000を表す値があります。 次のリストは、TRUNC
演算子を使用して、各粒度レベルでTimeStamp値を丸める結果を示しています。 ここに示す値は、実際の値の読取りが簡単になるフォーマットで表示され、標準のDgraph dateTime
フォーマットを使用します。
TRUNC("TimeStamp", MILLISECOND) = 10/13/2015 11:35:12.000 TRUNC("TimeStamp", SECOND) = 10/13/2015 11:35:12.000 TRUNC("TimeStamp", MINUTE) = 10/13/2015 11:35:00.000 TRUNC("TimeStamp", HOUR) = 10/13/2015 11:00:00.000 TRUNC("TimeStamp", DATE) = 10/13/2015 00:00:00.000 TRUNC("TimeStamp", WEEK) = 10/09/2015 00:00:00.000 TRUNC("TimeStamp", MONTH) = 10/01/2015 00:00:00.000 TRUNC("TimeStamp", QUARTER) = 10/01/2015 00:00:00.000 TRUNC("TimeStamp", YEAR) = 01/01/2015 00:00:00.000 TRUNC("TimeStamp", DAY_OF_WEEK) = 10/13/2015 00:00:00:000 TRUNC("TimeStamp", DAY_OF_MONTH) = 10/13/2015 00:00:00:000 TRUNC("TimeStamp", DAY_OF_YEAR) = 10/13/2015 00:00:00:000 TRUNC("TimeStamp", JULIAN_DAY_NUMBER) = 10/13/2015 00:00:00:000
TRUNC
操作を使用して取得されます:
RETURN Quarters AS SELECT SUM(Amount) AS Total, ARB(TRUNC(TimeStamp, QUARTER)) AS Qtr FROM SaleState GROUP BY Qtr