Для сравнения времени в таблицах, отбросив минуты и секунды до часов, можно воспользоваться функцией DATEPART
в сочетании с функцией CONVERT
. В зависимости от используемой СУБД, синтаксис и названия функций могут незначительно отличаться. Ниже приведены общие примеры для некоторых известных СУБД:
1. Microsoft SQL Server:
SELECT * FROM your_table WHERE DATEPART(HOUR, CONVERT(DATETIME, your_column)) = DATEPART(HOUR, CONVERT(DATETIME, another_column))
В этом примере your_table
- название таблицы, в которой хранится время, your_column
и another_column
- названия столбцов таблицы, содержащие время.
2. MySQL:
SELECT * FROM your_table WHERE HOUR(your_column) = HOUR(another_column)
Аналогично, здесь your_table
, your_column
и another_column
- названия таблицы и столбцов, содержащих время.
3. PostgreSQL:
SELECT * FROM your_table WHERE EXTRACT(HOUR FROM your_column) = EXTRACT(HOUR FROM another_column)
В данном случае your_table
, your_column
и another_column
- названия таблицы и столбцов, содержащих время.
Обратите внимание, что в этих примерах предполагается, что столбцы your_column
и another_column
имеют тип данных DATETIME
или эквивалентный ему тип данных, содержащий дату и время. Если тип данных отличается, возможно потребуется провести преобразование в соответствующий формат перед применением функций DATEPART
, HOUR
, CONVERT
или EXTRACT
.
В результате выполнения такого запроса будут возвращены все записи, где время в указанных столбцах равно, отбросив минуты и секунды до часов.