Как написать SQL-запрос для определенного диапазона дат и времени?

Опубликовано: 1 Сентября, 2022

В SQL некоторые проблемы требуют, чтобы мы извлекали строки на основе их даты и времени. Для таких случаев мы используем тип данных DATETIME2, присутствующий в SQL. В этой статье мы будем использовать Microsoft SQL Server в качестве нашей базы данных.

Примечание . Здесь мы будем использовать предложения WHERE и BETWEEN вместе с запросом, чтобы ограничить наши строки заданным временем. Шаблон сохранения даты и времени в MS SQL Server: гггг:мм:дд чч:мм:сс. Время представлено в 24-часовом формате. Дата и время вместе хранятся в столбце с использованием типа данных DATETIME2.

Синтаксис:

SELECT * FROM TABLE_NAME WHERE DATE_TIME_COLUMN
BETWEEN "STARTING_DATE_TIME" AND "ENDING_DATE_TIME";

Шаг 1: Создайте базу данных. Для этого используйте приведенную ниже команду, чтобы создать базу данных с именем GeeksForGeeks.

Запрос:

CREATE DATABASE GeeksForGeeks

Выход:

Шаг 2: Используйте базу данных GeeksForGeeks. Для этого используйте приведенную ниже команду.

Запрос:

USE GeeksForGeeks

Выход:

Шаг 3: Создайте таблицу PERSONAL внутри базы данных GeeksForGeeks. В этой таблице есть 3 столбца, а именно ИМЯ_РЕБЕНКА, НОМЕР_ОБЛАСТИ и ВРЕМЯ РОЖДЕНИЯ, содержащие имя, номер отделения, а также дату и время рождения различных младенцев.

Запрос:

CREATE TABLE PERSONAL(
BABY_NAME VARCHAR(10),
WARD_NUMBER INT,
BIRTH_DATE_TIME DATETIME2);

Выход:

Шаг 4: Опишите структуру таблицы PERSONAL.

Запрос:

EXEC SP_COLUMNS PERSONAL;

Выход:

Шаг 5: Вставьте 5 строк в таблицу MARKS.

Запрос:

INSERT INTO PERSONAL VALUES("TARA",3,"2001-01-10 10:40:50");
INSERT INTO PERSONAL VALUES("ANGEL",4,"2001-03-27 11:00:37");
INSERT INTO PERSONAL VALUES("AYUSH",1,"2002-09-18 13:45:21");
INSERT INTO PERSONAL VALUES("VEER",10,"2005-02-28 21:26:54");
INSERT INTO PERSONAL VALUES("ISHAN",2,"2008-12-25 00:01:00");

Выход:

Шаг 6: Отобразите все строки таблицы MARKS, включая 0 (нулевые) значения.

Запрос:

SELECT * FROM PERSONAL;

Выход:

Шаг 7: Получите сведения о детях, родившихся между 00:00 1 января 2000 г. и 12:00 18 сентября 2002 г.

Запрос:

SELECT * FROM PERSONAL WHERE BIRTH_DATE_TIME BETWEEN
"2000-01-01 00:00:00" AND "2002-09-18 12:00:00";

Выход:

Шаг 8: Получите сведения о детях, рожденных между 11:00 утра 1 мая 2001 г. и 22:00 1 мая 2005 г.

Запрос:

SELECT * FROM PERSONAL WHERE BIRTH_DATE_TIME BETWEEN
 "2001-03-01 11:00:00" AND "2005-03-01 22:00:00";

Выход:

Шаг 9: Найдите сведения о детях, родившихся на Рождество 2005 года или позже.

Запрос:

SELECT * FROM PERSONAL WHERE BIRTH_DATE_TIME > 
"2005-12-25 00:00:00";

Выход: