Bitte akzeptieren Sie meine Entschuldigung für mein schlechtes Englisch. In unserem Projekt verwenden wir spring.jpa.properties.hibernate.jdbc.time_zone = UTC, um LocalDateTime in UTC zu speichern; und wir müssen das Ergebnis nach Datum nach Benutzerzeitzone gruppieren; Also brauche ich eine JPQL (JPA) -Anweisung zu gruppieren nach Datum unter Berücksichtigung der Benutzer-Zeitzone wie Oracle FROM_TZ() -Funktion, oder wenn es eine Möglichkeit gibt, Unterschied Benutzer Zone Zeit und UTC-Zeit zu der Spalte zu addieren/Gruppieren durch?JPQL Gruppe nach Datum nach Benutzer Zeitzone
0
A
Antwort
0
Endlich fand ich die Antwort; hoffe, dass es nützlich für wen/wen es braucht.
ZonedDateTime zoneIdNow = ZonedDateTime.now(zonedId);
ZonedDateTime utcNow = zoneIdNow.toLocalDateTime().atZone(ZoneOffset.UTC);
Duration durationBetweenZoneIdAndUtc = Duration.between(zoneIdNow, utcNow);
float dayDiffBetweenZoneIdAndUtc = (float) durationBetweenZoneIdAndUtc.getSeconds()/(24 * 60 * 60);
entityManager
.createQuery("select cast(cast(p.birthday + " + dayDiffBetweenZoneIdAndUtc
+ " as timestamp) as date) as bd, count(p.id) from Person p "
+ "group by cast(cast(p.birthday + " + dayDiffBetweenZoneIdAndUtc
+ " as timestamp) as date)").getResultList()
Verwandte Themen
- 1. Zeitzonenänderungsberechnungen nach UTC nach Benutzer Zeitzone
- 2. Gruppieren nach Datum in Zeitzone als Datum- Format gespeichert Benutzer
- 3. Gruppe nach Datum, bestätigen, bis
- 4. Gruppe nach Name und Reihenfolge nach Datum und jede Gruppe nach Datum in linq
- 5. SQL-Gruppe nach Woche Datum
- 6. MySQL Abfrage-Gruppe nach Datum
- 7. Gruppe nach Stunde und Datum
- 8. Gruppe Funken Datenrahmen nach Datum
- 9. Jekyll - Gruppe Beiträge nach Datum
- 10. PHP Zeitstempel Datum Benutzer Zeitzone
- 11. Datum in CET-Zeitzone zu Benutzer-Zeitzone
- 12. Benutzer nach Gruppe in Sharepoint
- 13. Postgres Auswahl nach Datum (lang) mit Zeitzone
- 14. Postgres Zählung nach Datum mit Zeitzone
- 15. Mongodb Zeitzone Problem beim Filtern nach Datum
- 16. Django Count-Gruppe nach Datum von Datetime
- 17. JPQL und Zeitstempel mit Zeitzone
- 18. Teilen Sie Zeilen nach Datum und nach Gruppe SQL
- 19. Firebase WEB, Gruppe Nach Kind Aufzeichnungen nach Datum, Monat, Jahr
- 20. Python-Liste Gruppe nach Datum, Name
- 21. für jede Gruppe nach Datum in coffeescript
- 22. mysql Gruppe mit mehrere nach Datum beitreten
- 23. Django-Gruppe nach Datum und SUM-Werten
- 24. Orakel Gruppe nach Datum mit bestimmter Zeit
- 25. Aggregate nach Datum und einzigartiger Gruppe
- 26. wie nach Datum mehr mysql Gruppe verlassen
- 27. Get Liste der Dateien Gruppe nach Datum
- 28. Winterschlaf Gruppe nach Datum Spalte im Zeitintervall
- 29. Rails - Rückkehr letzte Gruppe (nach Datum)
- 30. MongoDB-Gruppe nach Datum und Nullzählung
Nehmen Benutzer Zeit -> Konvertieren es in UTC tz -> Ihre Datenbankabfrage. –
Ich verstehe es nicht !! Ihre Daten werden als UTC gespeichert. Um jetzt die übereinstimmenden Daten aus der Datenbank zu erhalten, müssen Sie zuerst das benutzerspezifische Zeitzone-spezifische Datum in die UTC ändern und dann die Datenbank abfragen, um die spezifischen Zeilen zu erhalten. Es gibt viele Möglichkeiten, Datum in bestimmte Zeitzonen zu konvertieren. Check [this] (https://stackoverflow.com/q/22768905/3094731) –
@AbdullahKhan Vielen Dank für die schnelle Antwort, aber mein Problem ist die UTC-Datum Spalte zu Benutzerzone Zeit und Gruppierung von diesen neuen Zeiten zu konvertieren. Betrachten Sie zum Beispiel gespeicherte Geburtstage in UTC wie folgt: 20171023 21: 00: 00/ ** 20171023 22: 30: 00 **/ ** 20171023 23: 00: 00 **/ ** 20171024 00:30 00 **/ ** 20171024 01: 30: 00 **/ ** 20171024 08: 00: 00 **/ 20171024 23:00:00 Also, wenn ein Benutzer zählt täglich Geburtstage sehen aus Paris Zeitzone [UTC/GMT +2 Stunden], er/sie erwartet: 20171023: ** 1 **/ 20171024: ** 5 **/ 20171025: ** 1 ** –