diff --git a/pgm_field.go b/pgm_field.go index f801f20..3402320 100644 --- a/pgm_field.go +++ b/pgm_field.go @@ -131,6 +131,16 @@ func (f Field) IsNotNull() Conditioner { return &Cond{Field: col, op: " IS NOT NULL", len: len(col) + 12} } +// DateTrunc will truncate date or timestamp to specified level of precision +// +// Level values: +// - microseconds, milliseconds, second, minute, hour +// - day, week (Monday start), month, quarter, year +// - decade, century, millennium +func (f Field) DateTrunc(level, as string) Field { + return Field("DATE_TRUNC('" + level + "', " + f.String() + ") AS " + as) +} + // EqualFold will use LOWER(column_name) = LOWER(val) for comparision func (f Field) EqFold(val string) Conditioner { col := f.String()