Skip to content

Add 'week' to date extraction #599

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: beam-0.11
Choose a base branch
from
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