Jak dodać na stałe czas od 06:00 do 05:59 dla wpisywaych zakresów dat ?

0

Witam, pod excela mam "podpięty" kod sql, który na podstawie dwóch parametrów z datą wpisywanych w konkretnych komórkach wyszukuje zakres dat od... do... przy pomocy poniższej linii

WHERE BETWEEN ? AND ?

W jaki sposób mogę dodatkowo dodać na stałe czas od 06:00 do 05:59, aby wyszukiwało daty w tym konkretnym przedziale czasowym. Czas zawarty w tabeli jest w formie liczby np. 175800 (17:58:00)

Chodzi o to, aby po wpisaniu w komórkach zakresu dat np. od 20231119 do 20231120 zwracało wynik wyszukując dodatkowo przedział czasowy od 06:00 do 05:59. Daty będą zmienne, więc nie mogę przypisać dat na stałe.

P.S. Proszę wybaczyć mi za błędy, ale dopiero zaczynam przygodę z SQL

0

jeśli zakres dat może być większy niż jeden dzień to nie bardzo wiem co by to miało zwrócić. Jeśli natomiast zakres dat to zawsze jeden dzień to po prostu dodawaj już w kodzie godziny do daty

0

Musisz to na dwa podzielic.

EXTRACT(DATE FROM column) BETWEEN ... AND EXTRACT(HOUR_MINUTE FROM column) BETWEEN ...

0

@stivens: to nie zadziała - nie możesz filtrować po godzinach bez odniesienia do dat jeśli zakres godzin pokrywa cały dzień

0

Daty to w 99% różnica jednego dnia, ale godziny zawsze muszą być stałe od 06:00 do 05:59

0

Nie wiem czy to ma jakieś znaczenie, ale data i czas są pobierane z osobnych kolumn do tabeli z bazy danych

0

@stivens: masz taki warunek data pomiędzy 2023.11.10 06:00 i 2023.11.11 05:59 i Twój warunek Where data between '2023.11.10' and '2023.11.11' and godzina between '06:00' and '05:59' - jak myślisz ile rekordów spełni ten warunek? - nie możesz w takiej sytuacji filtrować po godzinach w oderwaniu od daty

@lisekx: wymyśliłem takie coś

  1. musisz z kolumn data i godzina utworzyć jedno pole (jak - dokumentacja/google)
  2. od tak powstałej datetime2 odejmujesz 6h (czyli to Twoje od 06:00)
    w rezultacie dostajesz dla każdego rekordu datę, gdzie czas nie gra roli i możesz filtrować/grupować po samej dacie mając jednocześnie "prawidłową" datę nadal dostępną
0

Jaki to DBMS w ogole jest?

0
abrakadaber napisał(a):

@stivens: masz taki warunek data pomiędzy 2023.11.10 06:00 i 2023.11.11 05:59 i Twój warunek Where data between '2023.11.10' and '2023.11.11' and godzina between '06:00' and '05:59' - jak myślisz ile rekordów spełni ten warunek? - nie możesz w takiej sytuacji filtrować po godzinach w oderwaniu od daty

@lisekx: wymyśliłem takie coś

  1. musisz z kolumn data i godzina utworzyć jedno pole (jak - dokumentacja/google)
  2. od tak powstałej datetime2 odejmujesz 6h (czyli to Twoje od 06:00)
    w rezultacie dostajesz dla każdego rekordu datę, gdzie czas nie gra roli i możesz filtrować/grupować po samej dacie mając jednocześnie "prawidłową" datę nadal dostępną

Niestety, ale dla mnie to nadal skomplikowane jest :(

1 użytkowników online, w tym zalogowanych: 0, gości: 1