Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions beam-core/Database/Beam/Backend/SQL/AST.hs
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ data ExtractField

| ExtractFieldDateTimeYear
| ExtractFieldDateTimeMonth
| ExtractFieldDateTimeWeek
| ExtractFieldDateTimeDay
| ExtractFieldDateTimeHour
| ExtractFieldDateTimeMinute
Expand Down Expand Up @@ -290,6 +291,7 @@ instance IsSql92ExtractFieldSyntax ExtractField where
minutesField = ExtractFieldDateTimeMinute
hourField = ExtractFieldDateTimeHour
dayField = ExtractFieldDateTimeDay
weekField = ExtractFieldDateTimeWeek
monthField = ExtractFieldDateTimeMonth
yearField = ExtractFieldDateTimeYear

Expand Down
1 change: 1 addition & 0 deletions beam-core/Database/Beam/Backend/SQL/Builder.hs
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,7 @@ instance IsSql92ExtractFieldSyntax SqlSyntaxBuilder where
minutesField = SqlSyntaxBuilder (byteString "MINUTE")
hourField = SqlSyntaxBuilder (byteString "HOUR")
dayField = SqlSyntaxBuilder (byteString "DAY")
weekField = SqlSyntaxBuilder (byteString "WEEK")
monthField = SqlSyntaxBuilder (byteString "MONTH")
yearField = SqlSyntaxBuilder (byteString "YEAR")

Expand Down
1 change: 1 addition & 0 deletions beam-core/Database/Beam/Backend/SQL/SQL92.hs
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,7 @@ class IsSql92ExtractFieldSyntax extractField where
minutesField :: extractField
hourField :: extractField
dayField :: extractField
weekField :: extractField
monthField :: extractField
yearField :: extractField

Expand Down
5 changes: 3 additions & 2 deletions beam-core/Database/Beam/Query/Extract.hs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ module Database.Beam.Query.Extract

-- ** SQL92 fields
hour_, minutes_, seconds_,
year_, month_, day_,
year_, month_, week_, day_,

HasSqlTime, HasSqlDate
) where
Expand Down Expand Up @@ -53,9 +53,10 @@ instance HasSqlDate LocalTime
instance HasSqlDate UTCTime
instance HasSqlDate Day

year_, month_, day_
year_, month_, week_, day_
:: ( BeamSqlBackend be, HasSqlDate tgt )
=> ExtractField be tgt Double
year_ = ExtractField yearField
month_ = ExtractField monthField
day_ = ExtractField dayField
week_ = ExtractField weekField
1 change: 1 addition & 0 deletions beam-migrate/Database/Beam/Haskell/Syntax.hs
Original file line number Diff line number Diff line change
Expand Up @@ -627,6 +627,7 @@ instance IsSql92ExtractFieldSyntax HsExpr where
hourField = hsVar "hourField"
yearField = hsVar "yearField"
monthField = hsVar "monthField"
weekField = hsVar "weekField"
dayField = hsVar "dayField"

instance IsSql92ExpressionSyntax HsExpr where
Expand Down
1 change: 1 addition & 0 deletions beam-postgres/Database/Beam/Postgres/Syntax.hs
Original file line number Diff line number Diff line change
Expand Up @@ -696,6 +696,7 @@ instance IsSql92ExtractFieldSyntax PgExtractFieldSyntax where
minutesField = PgExtractFieldSyntax (emit "MINUTE")
hourField = PgExtractFieldSyntax (emit "HOUR")
dayField = PgExtractFieldSyntax (emit "DAY")
weekField = PgExtractFieldSyntax (emit "WEEK")
monthField = PgExtractFieldSyntax (emit "MONTH")
yearField = PgExtractFieldSyntax (emit "YEAR")

Expand Down
1 change: 1 addition & 0 deletions beam-sqlite/Database/Beam/Sqlite/Syntax.hs
Original file line number Diff line number Diff line change
Expand Up @@ -931,6 +931,7 @@ sqliteExtract field from =
ExtractFieldDateTimeYear -> extractStrftime "%Y"
ExtractFieldDateTimeMonth -> extractStrftime "%m"
ExtractFieldDateTimeDay -> extractStrftime "%d"
ExtractFieldDateTimeWeek -> extractStrftime "%W"
ExtractFieldDateTimeHour -> extractStrftime "%H"
ExtractFieldDateTimeMinute -> extractStrftime "%M"
ExtractFieldDateTimeSecond -> extractStrftime "%S"
Expand Down