Skip to content
This repository has been archived by the owner on Jan 25, 2025. It is now read-only.

Commit

Permalink
Use JST timezone
Browse files Browse the repository at this point in the history
  • Loading branch information
tahirmurata committed Oct 2, 2024
1 parent c3530ee commit 0b4362c
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 34 deletions.
4 changes: 4 additions & 0 deletions internal/database/database.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,10 @@ func New() Service {
return dbInstance
}

// dbconfig, err := pgxpool.ParseConfig(databaseURL)
// if err != nil {
// // handle error
// }
dbpool, err := pgxpool.New(context.Background(), databaseURL)
if err != nil {
slog.Error("failed to create connection pool", "error", err)
Expand Down
43 changes: 26 additions & 17 deletions internal/sqlc/query.sql.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

36 changes: 19 additions & 17 deletions sql/query.sql
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
-- name: SetTimezoneJST :exec
SET TIME ZONE '9';
-- name: GetVisitorByIp :one
SELECT *
FROM visitors
Expand Down Expand Up @@ -171,27 +173,27 @@ WHERE node_id = $1
AND type = $2;
-- name: CountEntryPerHalfHourByNodeId :many
SELECT COUNT(*) AS count,
DATE_PART('hour', el.created_at) AS hour,
FLOOR(DATE_PART('minute', el.created_at) / 30) * 30 AS minute
DATE_PART('hour', el.created_at AT TIME ZONE '+09:00') AS hour,
FLOOR(DATE_PART('minute', el.created_at AT TIME ZONE '+09:00') / 30) * 30 AS minute
FROM entry_logs el
WHERE el.node_id = $1
AND el.type = $2
AND DATE(el.created_at) = CURRENT_DATE
AND DATE_PART('hour', el.created_at) BETWEEN 8 AND 18
GROUP BY hour
ORDER BY hour DESC
AND DATE(el.created_at AT TIME ZONE '+09:00') = CURRENT_DATE
AND DATE_PART('hour', el.created_at AT TIME ZONE '+09:00') BETWEEN 8 AND 18
GROUP BY hour, minute
ORDER BY hour DESC, minute DESC
LIMIT 24;
-- name: CountFoodStallPerHalfHourByFoodId :many
SELECT SUM(fsl.quantity) AS count,
DATE_PART('hour', fsl.created_at) AS hour,
FLOOR(DATE_PART('minute', fsl.created_at) / 30) * 30 AS minute
DATE_PART('hour', fsl.created_at AT TIME ZONE '+09:00') AS hour,
FLOOR(DATE_PART('minute', fsl.created_at AT TIME ZONE '+09:00') / 30) * 30 AS minute
FROM food_stall_logs fsl
JOIN node_foods nf ON fsl.node_food_id = nf.id
WHERE nf.food_id = $1
AND DATE(fsl.created_at) = CURRENT_DATE
AND DATE_PART('hour', fsl.created_at) BETWEEN 8 AND 18
AND DATE(fsl.created_at AT TIME ZONE '+09:00') = CURRENT_DATE
AND DATE_PART('hour', fsl.created_at AT TIME ZONE '+09:00') BETWEEN 8 AND 18
GROUP BY hour, minute
ORDER BY hour, minute
ORDER BY hour DESC, minute DESC
LIMIT 24;
-- name: CountFoodStallQuantityPerHourByFoodId :many
SELECT SUM(fsl.quantity * f.quantity) AS count,
Expand All @@ -206,12 +208,12 @@ ORDER BY hour
LIMIT 24;
-- name: CountExhibitionPerHalfHourByNodeId :many
SELECT COUNT(*) AS count,
DATE_PART('hour', el.created_at) AS hour,
FLOOR(DATE_PART('minute', el.created_at) / 30) * 30 AS minute
DATE_PART('hour', el.created_at AT TIME ZONE '+09:00') AS hour,
FLOOR(DATE_PART('minute', el.created_at AT TIME ZONE '+09:00') / 30) * 30 AS minute
FROM exhibition_logs el
WHERE el.node_id = $1
AND DATE(el.created_at) = CURRENT_DATE
AND DATE_PART('hour', el.created_at) BETWEEN 8 AND 18
GROUP BY hour
ORDER BY hour DESC
AND DATE(el.created_at AT TIME ZONE '+09:00') = CURRENT_DATE
AND DATE_PART('hour', el.created_at AT TIME ZONE '+09:00') BETWEEN 8 AND 18
GROUP BY hour, minute
ORDER BY hour DESC, minute DESC
LIMIT 24;

0 comments on commit 0b4362c

Please sign in to comment.