Как добавить дату в SQL запрос?
Подскажите пожалуйста, как мне в программу вставить с 1 июня 2017 года? Вот текст задания:
Напишите запрос, возвращающий список названий аэропортов, в которых было принято более 1000 рейсов с 1 июня 2017 года.
До этого момента получилась такая программа, хоть и рейсов более 1000 не находит почему-то Программа :
SELECT count(distinct flights.flight_id),airports_data.airport_name from flights natural join airports_data group by airports_data.airport_name order by count desc;

Структура базы данных : В учебной базе данных «Авиаперевозки» имеется материализованное представление — «Маршруты» (routes)
date (Transact-SQL)
Определяет дату в SQL Server. Тип данных даты появился в SQL Server 2008 (10.0.x).
Описание типа данных date
| Свойство | Значение |
|---|---|
| Синтаксис | DATE |
| Использование | DECLARE @MyDate DATE |
MM — это две цифры от 01 12 того, что представляет месяц в указанном году.
Поддерживаемые форматы строковых литералов для типа данных date
В приведенной ниже таблице перечислены допустимые форматы строковых литералов для типа данных date.
Поддерживаются только четыре цифры или двухзначные годы. Для записи года рекомендуется всегда использовать четырехзначный формат. Чтобы указать целое число от 0001 9999 того, что представляет отрезок года для интерпретации двухзначных лет в качестве четырехзначных лет, используйте параметр конфигурации сервера отсечения двухзначного года.
Примечание. Для Informatica ограничено yyyy диапазоном 1582 9999 .
Если двузначное число, обозначающее год, меньше или равно двузначному числу из последних двух цифр порогового года, год относится к тому же столетию, что и пороговый год. Если двузначное число, обозначающее год, больше двузначного числа из последних двух цифр порогового года, год относится к столетию, которое предшествует столетию порогового года. Например, если двухзначный отрезок года является стандартным 2049 , двухзначный год 49 интерпретируется как 2049 и двухзначный год 50 интерпретируется как 1950 .
Текущий языковой параметр определяет формат даты по умолчанию. Формат даты можно изменить с помощью инструкций SET LANGUAGE и SET DATEFORMAT.
Во избежание неоднозначности используйте четырехзначную запись года.
TZD — это конструктор часового пояса ( Z или -hh:mm +hh:mm ):
Соответствие стандартам ANSI и ISO 8601
Значение date соответствует стандартному определению ANSI SQL для григорианского календаря:
ПРИМЕЧАНИЕ 85. Типы данных Datetime позволяют хранить даты в григорианском формате в диапазоне дат 0001-01-01 CE до 9999-12-31 CE.
Формат строкового литерала по умолчанию, используемый для клиентов нижнего уровня, соответствует стандартной форме SQL, определенной как yyyy-MM-dd . Этот формат совпадает с определением ISO 8601 для DATE .
Для Informatica диапазон ограничен 1582-10-15 (15 октября 1582 CE) до 9999-12-31 (31 декабря 9999 CE).
Обратная совместимость для клиентов нижнего уровня
Некоторые клиенты нижнего уровня не поддерживают типы данных time, date, datetime2 и datetimeoffset. В следующей таблице показано сопоставление типов между экземпляром SQL Server и клиентами нижнего уровня.
| Тип данных SQL Server | Формат строкового литерала по умолчанию, передаваемый клиенту низкого уровня | ODBC низкого уровня | OLEDB низкого уровня | JDBC низкого уровня | SQLCLIENT низкого уровня |
|---|---|---|---|---|---|
| time | hh:mm:ss[.nnnnnnn] | SQL_WVARCHAR или SQL_VARCHAR | DBTYPE_WSTR или DBTYPE_STR | Java.sql.String | String или SqString |
| date | yyyy-MM-dd | SQL_WVARCHAR или SQL_VARCHAR | DBTYPE_WSTR или DBTYPE_STR | Java.sql.String | String или SqString |
| datetime2 | yyyy-MM-dd HH:mm:ss[.nnnnnnn] | SQL_WVARCHAR или SQL_VARCHAR | DBTYPE_WSTR или DBTYPE_STR | Java.sql.String | String или SqString |
| datetimeoffset | yyyy-MM-dd HH:mm:ss[.nnnnnnn] [+ or -]hh:mm | SQL_WVARCHAR или SQL_VARCHAR | DBTYPE_WSTR или DBTYPE_STR | Java.sql.String | String или SqString |
Преобразование данных даты и времени
При преобразовании в типы данных даты и времени SQL Server отклоняет все значения, которые не распознаются как даты или время. Сведения об использовании и CONVERT функциях с данными CAST даты и времени см. в статье CAST и CONVERT (Transact-SQL).
Преобразование даты в другие типы дат и времени
В этом разделе описывается, что происходит при преобразовании типа данных date в другие типы даты и времени.
При преобразовании в time(n)преобразование завершается ошибкой и возникает сообщение об ошибке 206:
Столкновение типов операнда: дата несовместима с временем.
Если преобразование равно datetime, компонент даты копируется. В следующем коде показаны результаты преобразования значения даты в значение datetime .
DECLARE @date DATE = '12-10-25'; DECLARE @datetime DATETIME = @date; SELECT @date AS '@date', @datetime AS '@datetime';
@date @datetime ---------- ----------------------- 2025-12-10 2025-12-10 00:00:00.000
При преобразовании в smalldatetime значение даты находится в диапазоне smalldatetime, компонент даты копируется, а для компонента времени задано значение . 00:00:00.000 Если значение даты выходит за пределы диапазона значения smalldatetime, возникает сообщение об ошибке 242, а значение smalldatetime имеет NULL значение :
Преобразование типа данных даты в типы данных smalldatetime привело к значению вне диапазона.
В следующем коде показаны результаты преобразования значения даты в значение smalldatetime .
DECLARE @date DATE = '1912-10-25'; DECLARE @smalldatetime SMALLDATETIME = @date; SELECT @date AS '@date', @smalldatetime AS '@smalldatetime';
@date @smalldatetime ---------- ------------------- 1912-10-25 1912-10-25 00:00:00
Для преобразования в datetimeoffset(n)дата копируется, а время — 00:00.0000000 +00:00 . В следующем коде показаны результаты преобразования значения даты в значение datetimeoffset(3).
DECLARE @date DATE = '1912-10-25'; DECLARE @datetimeoffset DATETIMEOFFSET(3) = @date; SELECT @date AS '@date', @datetimeoffset AS '@datetimeoffset';
@date @datetimeoffset ---------- ------------------------------ 1912-10-25 1912-10-25 00:00:00.000 +00:00
При преобразовании в datetime2(n)компонент даты копируется, а для компонента времени задано значение 00:00.000000 . В следующем коде показаны результаты преобразования значения даты в значение datetime2(3).
DECLARE @date DATE = '1912-10-25' DECLARE @datetime2 DATETIME2(3) = @date; SELECT @date AS '@date', @datetime2 AS '@datetime2(3)';
@date @datetime2(3) ---------- ----------------------- 1912-10-25 1912-10-25 00:00:00.000
Преобразование строковых литерала в дату
Преобразование строковых литералов в типы данных даты и времени разрешается, если все части строк записаны в допустимом формате. Иначе возникает ошибка времени выполнения. Неявные преобразования или явные преобразования, не указывающие стиль, от типов даты и времени до строковых литералов, находятся в формате по умолчанию текущего сеанса. В таблице ниже приводятся правила преобразования строковых литералов в тип данных date.
| Строковый литерал входа | Дата |
|---|---|
| ODBC DATE | Строковые литералы ODBC сопоставляются с типом данных datetime. Любая операция присваивания литералов ODBC DATETIME типу данных date вызывает неявное преобразование между данным типом и типом datetime согласно правилам преобразования. |
| ODBC TIME | См. предыдущее правило ODBC DATE. |
| ODBC DATETIME | См. предыдущее правило ODBC DATE. |
| только DATE | Простейший. |
| только TIME | Указаны значения по умолчанию. |
| только TIMEZONE | Указаны значения по умолчанию. |
| DATE + TIME | Используется компонент DATE входной строки. |
| DATE + TIMEZONE | Запрещено. |
| TIME + TIMEZONE | Указаны значения по умолчанию. |
| DATE + TIME + TIMEZONE | Используется часть DATE локального DATETIME. |
Примеры
В приведенном ниже примере сравниваются результаты приведения строкового типа к каждому из типов данных date и time.
SELECT CAST('2022-05-08 12:35:29.1234567 +12:15' AS TIME(7)) AS 'time', CAST('2022-05-08 12:35:29.1234567 +12:15' AS DATE) AS 'date', CAST('2022-05-08 12:35:29.123' AS SMALLDATETIME) AS 'smalldatetime', CAST('2022-05-08 12:35:29.123' AS DATETIME) AS 'datetime', CAST('2022-05-08 12:35:29.1234567 +12:15' AS DATETIME2(7)) AS 'datetime2', CAST('2022-05-08 12:35:29.1234567 +12:15' AS DATETIMEOFFSET(7)) AS 'datetimeoffset';
| Тип данных | Выходные данные |
|---|---|
| time | 12:35:29.1234567 |
| date | 2022-05-08 |
| smalldatetime | 2022-05-08 12:35:00 |
| datetime | 2022-05-08 12:35:29.123 |
| datetime2 | 2022-05-08 12:35:29.1234567 |
| datetimeoffset | 2022-05-08 12:35:29.1234567 +12:15 |
См. также
Не могу добавить дату и время в таблицу
create table Contacting_the_operator(
idContakt int Not NULL primary key IDENTITY,
IDsotr int not null References Sotrudnik(IdSotrudnik),
IdAbon int not null References Abonent_info(IdAbonent),
date_of_the_application DATETIME NOT NULL,
—дата приёма проблемы
Date_clos_problem DATETIME NULL,
—дата закрытия проблемы
idProb int not null References Problem(IDproblem)
)
insert into Contacting_the_operator
Values
(1,2,’10/05/2017 09:36′,’10/05/2017 10:20′,1),
(3,4,’2017/12/31 17:36′,’2017/12/31 17:46′,3),
(3,3,’20/07/2017 12:30′,’2017/07/21 12:20′,1),
(2,5,’23/06/2017 11:25′,’2017/06/25 09:00′,3),
(2,1,’05/10/2017 15:36′,’2017/10/06 13:20′,4),
(3,6,’11/09/2017 14:30′,’2017/09/12 17:20′,5),
(1,8,’13/02/2017 09:36′,’2017/02/13 09:20′,5),
(1,7,’29/07/2017 14:00′,’2017/07/29 18:00′,4),
(2,10,’01/01/2017 09:36′,’2017/01/01 10:26′,2),
(3,9,’04/04/2017 16:08′,’2017-04-06 12:20′,2);
ошибка Преобразование типа данных varchar в тип данных datetime привело к выходу значения за пределы диапазона Менял
уже как хочеш ‘/’ , ‘:’ , и вместе. ничего не выходит. И ещё можно ли как-то DATETIME сделать нулями(проблема не закрыта даты нет. NULL не работает)
А ещё если одну строку то добавляет.
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Добавить в письмо время и дату
Есть готовая форма отправки письма, требуется добавить в тело письма дату и время отправки письма с.
Вставить в таблицу текущие дату и время
Я совсем новичок в MySQL, так что не ругайтесь сильно) Проблема у меня такая: Нужно в таблицу.
Как добавить дату и время в List?
1. имеется класс Note #pragma once using namespace System; using namespace.
Нужно добавить время и дату в загрузчик
org 0x7C00 bits 16 mov ax, 0 mov ds, ax mov es, ax mov ss, ax mov sp.
34 / 30 / 10
Регистрация: 24.11.2014
Сообщений: 188
Записей в блоге: 11
Попробуйте использовать функцию
CONVERT(DATETIME, '10/05/2017 09:36', 131)
131 это вот такой формат даты dd/mm/yyyy hh:mi:ss:mmmAM
Добавлено через 8 минут
Обратите внимание, что в последней строке у вас отличается формат одной из дат.
1113 / 758 / 183
Регистрация: 27.11.2009
Сообщений: 2,264

Сообщение было отмечено Zhendos21 как решение
Решение
Пользуйтесь стандартными строковыми представлениями даты-времени, и проблем никогда не будет.
Это:
‘YYYYMMDD hh:mm:ss.nnn’
или
‘YYYY-MM-DDThh:mm:ss.nnn’
При этом CONVERT не нужен — сервер распознаёт эти форматы автоматически.
Как правильно вводить дату в sql
В SQL даты обычно вводятся в формате «ГГГГ-ММ-ДД» , где «ГГГГ» — год, «ММ» — месяц (от 01 до 12) и «ДД» — день (от 01 до 31).
Например, чтобы вставить запись в таблицу «orders» с датой заказа 22 марта 2023 года, можно использовать следующий запрос:
Если же дата вводится с помощью функции, то можно использовать стандартную функцию преобразования даты, например, функцию TO_DATE() в Oracle :
В этом примере мы используем функцию TO_DATE() для преобразования строки «22-03-2023» в дату формата «ГГГГ-ММ-ДД» . Второй аргумент функции («DD-MM-YYYY») указывает формат входной строки.
