Mam daty w tabelach:

2018-09-01 02:22:23
2018-09-01 02:22:25
2018-09-01 02:22:28
2018-09-02 02:22:22
2018-09-02 02:30:00

SELECT * FROM table_name where columnA =  order by 1 desc;

Columna to znacznik czasu

Chciałbym zwrócić maksymalną datę z tego dnia. Czy ktoś wie, jak to ma wyglądać to zapytanie?

0
danio900409 4 czerwiec 2018, 10:55

3 odpowiedzi

Najlepsza odpowiedź

Zapytanie powinno wyglądać -

Poniżej znajduje się na określony datę -

select max(columnA) from table_name
 where trunc(columnA) = date 'yyyy-mm-dd' ;-- this is for oracle
 --      where date(columnA) = 'yyyy-mm-dd' ;-- this is for mysql

Może być również rozwiązanie, jeśli potrzebujesz, aby był ogólny, aby dać max znacznik czasu na każdy dzień -

select max(A.columnA) from table_name A
  group by trunc(A.columnA); -- this is for oracle
  -- group by date(A.columnA); -- this is for mysql
2
Sudipta Mondal 4 czerwiec 2018, 11:42

Spróbuj tego zapytania

SELECT columnA FROM table_name WHERE where trunc(columnA ) = to_date('2018-09-02', 'YYYY-MM-DD') order by columnA DESC LIMIT 1
1
Vipul 4 czerwiec 2018, 11:38

Możesz użyć order by desc i limit

SELECT * FROM table 
   ORDER BY date_field DESC
   LIMIT 1;
0
Devsi Odedra 4 czerwiec 2018, 07:58