Как написать SQL-запрос для определенного диапазона дат и времени?
В 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";
Выход: