Текущая дата в SQL

 
ChaoX ©   (2007-09-09 14:24) [0]

Как узнать текущую дату (или хотя бы год) с помощью SQL?


 
Johnmen ©   (2007-09-09 14:44) [1]


> Как узнать текущую дату (или хотя бы год) с помощью SQL?

Заглянуть в документацию в конце-то концов!


 
S@shka ©   (2007-09-09 14:49) [2]

NOW


 
Вася Правильный   (2007-09-09 19:39) [3]

CURRENT_DATE


 
Плохиш ©   (2007-09-09 20:24) [4]


> S@shka ©   (09. 09.07 14:49) [2]


> Вася Правильный   (09.09.07 19:39) [3]

Прикольно как у специалистов по FireBird мнения разошлись :-)) или туда все возможные варианты засобачили?


 
Вася Правильный   (2007-09-09 20:25) [5]


> Плохиш ©   (09.09.07 20:24) [4]

это для разных диалектов
но есть еще парочка неозвученных вариантов почти по теме


 
Alekcvp ©   (2007-09-17 17:48) [6]

GetDate() 🙂


 
Megabyte ©   (2007-09-19 12:03) [7]

В 3-м Current_date


 
daMasK   (2007-11-16 07:09) [8]

Текущая
select (cast(«today» as date)) from dual

Вчерашняя
select (cast(«today» as date)-1) from dual


 
daMasK   (2007-11-16 07:14) [9]

CREATE VIEW DUAL(
   DUMMY)
AS
select «X» from rdb$database
;

Текущая
select (cast(«today» as date)) from dual

Вчерашняя
select (cast(«today» as date)-1) from dual


 
Andrey ©   (2007-11-16 09:57) [10]

>daMasK   (16.

11.07 07:14) [9]
DUAL — тяжелое наследие Ораклы? )
может проще select (cast(«today» as date)) from rdb$database ? )


 
Johnmen ©   (2007-11-16 10:44) [11]

> daMasK  

Прежде, чем поднимать из могилы и показывать свою крутость, неплохо бы ознакомиться с темой ветки.


 
Sergey Masloff   (2007-11-18 18:23) [12]

Плохиш ©   (09.09.07 20:24) [4]
>Прикольно как у специалистов по FireBird мнения разошлись :-)) или туда >все возможные варианты засобачили?

NOW, TODAY — устаревшие но поддерживаются для обратной совместимости

CURRENT_DATE, CURRENT_TIMESTAMP — новые, соответствуют стандарту SQL и применять лучше их.


 
PEAKTOP ©   (2007-11-18 22:32) [13]

> NOW, TODAY — устаревшие но поддерживаются для обратной совместимости
> CURRENT_DATE, CURRENT_TIMESTAMP — новые, соответствуют стандарту SQL

NOW и TODAY вот как раз и соответствуют стандарту, в то время как CURRENT_[.

….] являются контекстными переменными (CONTEXT VARIABLES).

В Firebird «NOW», «TODAY» возвращают ТЕКУЩУЮ дату(время) в точке их вызова, в то время, как CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP текущую дату время на момент старта транзакции.
То есть если мы стартанем транзакцию, покурим минут пять, а потом вызовем CURRENT_TIME[STAMP], то она вернет дату(время) на пять минут раньше, чем есть сейчас.

и применять лучше их.

Применять лучше то, что требуется по условиям ТЗ.


Типы данных даты и времени

Столбцы данного типа используются для записи дат, времени и их комбинаций.

Типы данных DATETIME, DATE, TIME

Тип данных DATETIME используется для величин, содержащих информацию как о дате, так и о времени в формате ‘YYYY-MM-DD HH:MM:SS’

Тип данных DATE используется для величин с информацией только о дате в формате ‘YYYY-MM-DD’. Поддерживается диапазон величин от ‘1000-01-01’ до ‘9999-12-31’.

Тип данных TIME используется для хранения значений времени в формате HH.MM.SS[.ssss]

Тип данных YEAR

MySQL Server поддерживает однобайтный тип данных YEAR, предназначенный для представления значений года в формате YYYY. Диапазон возможных значений — от 1901 до 2155.

Величины типа YEAR могут быть заданы в различных форматах:

  • Как четырехзначная строка в интервале значений от ‘1901’ до ‘2155’.
  • Как четырехзначное число в интервале значений от 1901 до 2155.
  • Как двухзначная строка в интервале значений от ’00’ до ’99’. Величины в интервалах от ’00’ до ’69’ и от ’70’ до ’99’ при этом преобразуются в величины YEAR в интервалах от 2000 до 2069 и от 1970 до 1999 соответственно.
  • Как двухзначное число в интервале значений от 1 до 99. Величины в интервалах от 1 до 69 и от 70 до 99 при этом преобразуются в величины YEAR в интервалах от 2001 до 2069 и от 1970 до 1999 соответственно. Необходимо принять во внимание, что интервалы для двухзначных чисел и двухзначных строк несколько различаются, так как нельзя указать «ноль» непосредственно как число и интерпретировать его как 2000. Необходимо задать его как строку ‘0’ или ’00’, или же оно будет интерпретировано как 0000.

Недопустимые величины YEAR преобразуются в 0000.

Тип данных TIMESTAMP

Назначение типа данных timestamp в MS SQL Server и MySQL Server значительно отличается.

В языке Transcat SQL, используемом в MS SQL Server тип данных, TIMESTAMP представляет собой автоматически сформированные уникальные двоичные числа. При произведении любых изменений в строке значение TIMESTAMP будет обновлено. Таким образом, столбец типа TIMESTAMP можно использовать, чтобы определить, было ли произведено изменение какого-либо значения в строке с момента ее последнего считывания.

В таблице может быть только один столбец типа TIMESTAMP.

В MySQL Server тип столбца TIMESTAMP используется для автоматической записи текущих даты и времени при выполнении операций вставки или обновления. Допускается наличие нескольких столбцов типа TIMESTAMP в таблице, но в этом случае автоматически обновляется только первый из них. Столбец типа TIMESTAMP можно установить в значение, отличное от текущих даты и времени путем явного указания значения столбца при выполнении операций вставке и обновлении данных.

Функция SQL Server GETDATE() и варианты ее использования

В этой статье мы обсудим обзор и варианты использования функции SQL Server GETDATE(), которая используется для возврата текущей даты и времени системы, в которой работает экземпляр SQL Server. Есть несколько связанных с датой и временем функции в SQL Server для различных требований, таких как SYSDATETIME, CURRENT_TIMESTAMP и т. д. Все эти функции будут вернуть текущую дату и время системы, в которой работает SQL Server.

Единственная разница в наличии этих многих функций — это точность длины временной метки, например, до какой точности вы хотите вернуть дату и время. выход. Я покажу вам вывод некоторых из этих функций даты и времени и сравним их с функцией SQL Server GETDATE().

Ниже приведен синтаксис функции GETDATE. Выходные данные этой функции будут возвращены в формате «ГГГГ-ММ-ДД чч:мм:сс.ммм».

ВЫБЕРИТЕ ПОЛУЧИТЬДАТУ()

ПЕРЕЙТИ

Функция SQL Server GETDATE очень гибкая и может использоваться с различными другими функциями даты и времени для возврата вывода в желаемом формате. Давайте сначала сравним эту функцию с другими функциями даты и времени, доступными в SQL Server, в разделе ниже.

Сравните функцию SQL Server GETDATE() с другими функциями даты и времени

Как я уже говорил выше, SQL Server предлагает несколько функций даты и времени для возврата текущей даты, даты или времени. только время в зависимости от вашего требования. Если вы хотите вернуть вывод даты и времени в определенном формате, вы можете использовать любую из этих функций, которые соответствуют вашим требованиям.

Взгляните на приведенный ниже пример, где я получил текущий вывод даты и времени, используя различные функции. Вы можете сравнить их друг с другом, чтобы понять, с какой точностью конкретная функция возвращает свой результат.

SELECT GETDATE() AS [Getdate],

CURRENT_TIMESTAMP AS [Current Timestamp],

SYSDATETIME() AS [Sysdatetime]

GO

Результат показан на изображении ниже. Все три функции возвращают одну и ту же метку времени, но SYSDATETIME дает большую точность в долях секунды по сравнению с остальными двумя функциями.

Мы видим, что текущая метка времени, возвращаемая вышеуказанными функциями, имеет определенный формат. Если мы хотим получить только текущую дату системы или только время системы, то нам нужно использовать другую функцию SQL Server CONVERT чтобы вернуть только дату или время из приведенного выше вывода. Я покажу это в приведенных ниже примерах использования, чтобы вы могли использовать их в соответствии с вашими требованиями.

Запустите приведенные ниже операторы T-SQL, чтобы вернуть определенный вывод, например, мы хотим получить только часть даты из приведенного выше вывода. Здесь я выполнил все функции как отдельный запрос, вы можете запустить его в одном запросе, как я сделал в приведенном выше примере.

1

2

3

4

5

6

SELECT CONVERT (Date, GETDATE()) AS [Current Date]

GO

SELECT CONVERT (Date, CURRENT_TIMESTAMP) AS [Current Date]

GO

SELECT CONVERT (Date, ASSDATETIME()) Дата]

Пр

Вывод показывает текущую системную дату только для всех системных функций.

Точно так же мы можем получить текущее системное время, только выполнив следующие запросы. Нам просто нужно заменить «Дата» на «Время» в скобках, как показано в приведенных ниже утверждениях.

1

2

3

4

5

6

SELECT CONVERT (Time, GETDATE()) AS [Current Date]

GO

SELECT CONVERT (Time, CURRENT_TIMESTAMP) AS [Current Date]

GO

SELECT CONVERT (Time, SYSDATETIME()) AS [Current Date]

GO

Вот вывод, в котором мы видим одно и то же время, возвращаемое всеми тремя функциями, за исключением долей секунды.

Если вы хотите получить тот же результат, то вы должны выполнить все 3 функции в одном запросе, как это сделал я в первом пример. Он фиксирует текущее время во время выполнения соответствующей функции, и каждый оператор был выполняются одно за другим, поэтому разница в малой части их секунд ничтожно мала.

Ниже показано выполнение одной и той же функции при выполнении одного запроса, и мы видим, что время одинаково для всех 3 функции здесь, потому что они выполняются в рамках одного пакета.

Варианты использования функции SQL Server GETDATE()

Вывод вышеуказанных запросов возвращается в определенном формате. Предположим, вы хотите вернуть единственный год, месяц, дату или день, то вы не можете получить это с помощью вышеуказанных запросов. SQL Server предлагает несколько функций, которые мы можем используйте для получения гораздо более глубоких и детализированных результатов с помощью функции SQL Server GETDATE. Эти функции DATENAME, DATEPART, DAY, MONTH, YEAR и т. д.

Теперь давайте обсудим, как использовать функцию SQL Server GETDATE с различными другими функциями в следующем разделе.

Используйте функцию GETDATE с функциями DATENAME, DATEPART и DATEADD

DATENAME и DATEPART — это функции SQL Server, в другом формате. Функция DATENAME вернет дату и время на основе строки символов указанного date, тогда как функция DATEPART вернет дату и время в виде целого числа для указанной даты.

Функция DATEADD помогает нам получить текущую, будущую или прошлую дату и время на основе указанного числа на входе. ДатаВремя.

Ниже приведены части даты и времени, которые могут быть возвращены с помощью этих функций:

  • Год
  • Четверть
  • Месяц
  • День года
  • День
  • Неделя
  • будний день
  • Час
  • Минута
  • Второй
  • Миллисекунда
  • микросекунда
  • Наносекунда
  • TZсмещение
  • ISO_WEEK

Каждая часть даты и времени имеет свою аббревиатуру, которую также можно использовать для возврата того же вывода.

Здесь я буду использовать функцию SQL Server GETDATE в качестве указанной даты, чтобы эти функции возвращали различные части или части значений даты и метки времени.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

SELECT DATENAME (YEAR, GETDATE()) AS [Year],

DATENAME (QUARTER, GETDATE()) AS [Quarter],

DATENAME (MONTH, GETDATE()) AS [Month],

DATENAME ( DayOfYear, GETDATE()) AS [DayOfYear],

DATENAME (DAY, GETDATE()) AS [Day],

DATENAME (WEEK, GETDATE()) AS [Week],

DATENAME (WEEKDAY, GETDATE()) ) AS [Будний день],

DATENAME (HOUR, GETDATE()) AS [Hour],

DATENAME (MINUTE, GETDATE()) AS [Minute],

DATENAME (SECOND, GETDATE()) AS [Second],

DATENAME (MILLISECOND , GETDATE()) AS [миллисекунда],

DATENAME (MICROSECOND, GETDATE()) AS [микросекунда],

DATENAME (НС, GETDATE()) AS [наносекунда],

DATENAME (ISO_WEEK, GETDATE()) AS [Неделя ISO]

Мы также можем использовать его аббревиатуру, чтобы получить результат, например, мы можем использовать mm или m для МЕСЯЦЕВ, dd или d для ДНЯ и т. д.

Теперь мы запустим вышеуказанный запрос с функцией DATEPART и посмотрим разницу между их выводом. Ты можешь видеть, Я только что заменил функцию DATENAME функцией DATEPART в приведенном ниже запросе.

1

2

3

4

5

6

7

8

10

110003

12

13

14

SELECT DATEPART (YEAR, GETDATE()) AS [Year],

DATEPART (QUARTER, GETDATE()) AS [Quarter],

DATEPART (MONTH, GETDATE()) AS [Month],

DATEPART ( DayOfYear, GETDATE()) AS [DayOfYear],

DATEPART (DAY, GETDATE()) AS [Day],

DATEPART (WEEK, GETDATE()) AS [Week],

DATEPART (WEEKDAY, GETDATE()) ) AS [День недели],

DATEPART (HOUR, GETDATE()) AS [Час],

DATEPART (MINUTE, GETDATE()) AS [минута],

DATEPART (SECOND, GETDATE()) AS [секунда],

DATEPART (MILLISECOND, GETDATE()) AS [миллисекунда],

DATEPART (MICROSECOND, GETDATE()) AS [микросекунда],

DATEPART (NANOSECOND , GETDATE()) AS [Наносекунда],

DATEPART (ISO_WEEK, GETDATE()) AS [Неделя ISO]

Ниже приведен вывод вышеуказанного запроса, в котором мы видим, что все наборы результатов вернули свое значение в виде целого числа. тип данных, тогда как результаты, возвращаемые с помощью функции DATENAME, были в символьных строках.

Использование функции DATEADD совсем другое. Это помогает нам получить прошлые или будущие даты на основе в числовом выражении, переданном указанному значению или частям даты и времени, как указано в приведенном ниже запросе.

1

2

3

4

5

6

7

ВЫБЕРИТЕ GETDATE() AS [Сегодня]

GO

SELECT DATEADD (QUARTER, 2, GETDATE()) AS [Квартал],

    DATEADD (MONTH, 2, GETDATE()) AS [Месяц],

    DATEADD (DAY, 2, GETDATE()) AS [Day ],

    DATEADD (WEEK, 2, GETDATE()) AS [Неделя],

    DATEADD (WEEKDAY, 2, GETDATE()) AS [День недели]

Я использовал номер 2 для каждой части выражений даты и времени, поэтому приведенный выше запрос будет отображаться:

  • 2 -й квартал с сегодняшнего дня
  • 2 месяц с сегодняшнего дня
  • 2 -й день с сегодняшнего дня
  • 2 -я неделя с сегодняшнего дня
  • 2 рабочий день с сегодняшнего дня

Обратите внимание: я получил текущий вывод даты и времени, используя функцию SQL Server GETDATE, чтобы отметить, что сегодня Дата и время. Все расчеты будут происходить от этого значения. Вы можете передать любое число этому запросу, и результат будет вернуть n-е значение этой части даты и времени. Если вы хотите получить аналогичный результат из прошлого, вам нужно передайте это число с отрицательными знаками, такими как -2, -5 и т. д.

Сравните каждое значение, и вы сможете лучше понять вывод.

Использовать функцию SQL Server GETDATE с функциями ДЕНЬ, МЕСЯЦ, КОНМЕСЯЦ и ГОД

Мы можем получить такие сведения о ДНЕ, месяце и году, используя вышеуказанные функции, но есть и другой способ получить аналогичный вывод, например, часть дня, месяца и года.

ВЫБЕРИТЕ ГОД(GETDATE()) AS [Год],

MONTH(GETDATE()) AS [Месяц],

DAY(GETDATE()) AS [День],

EOMONTH(GETDATE()) AS [MonthEnd Date]

Приведенный выше запрос будет отображать год, месяц, день и последнюю дату текущего месяца.

Мы использовали:

  • Функция YEAR для отображения текущего года из функции SQL Server GETDATE
  • МЕСЯЦ функция для отображения номера текущего месяца из функции SQL Server GETDATE
  • Функция DAY для отображения даты из функции SQL Server GETDATE
  • EOMONTH функция для отображения последнего дня текущего месяца с помощью функции SQL Server GETDATE

Мы также можем использовать функцию КОНМЕСЯЦА для отображения последней даты текущего, прошлого, будущего или любого другого события. указанные месяцы. Нам нужно передать число в эту функцию. Это число определит n-й месяц.

SELECT КОНМЕСЯЦ(GETDATE()) AS [Последняя дата текущего месяца],

    КОНЕМЕСЯЦ(GETDATE(), -1) AS [Последняя дата предыдущего месяца],

    КОНМЕСЯЦ(GETDATE(), 1) AS [ Последняя дата следующего месяца]

Вы можете проанализировать приведенный ниже пример, где:

  • Я не передал ни одного числа, чтобы получить последнюю дату текущего месяца
  • Я использовал -1 номер, чтобы получить последнюю дату предыдущего месяца
  • Я использовал номер 1 , чтобы получить последнюю дату следующего месяца.

Вы можете передать номер в соответствии с вашими требованиями. Если вы хотите получить последнюю дату 6 -го -го месяца с сегодняшнего дня, то вам нужно передать 6 число, чтобы получить его детализацию.

Посмотрите на приведенный ниже вывод и проанализируйте, как эта функция отображает результат последней даты любого месяц.

Преобразование формата даты и времени с помощью CAST и CONVERT

В этом разделе объясняется, как получить текущую дату и время в различных форматах. В каждом регионе мира используются разные форматы даты и времени. Определенные форматы даты и времени популярны в зависимости от разных географических местоположений. Мы должны учитывать и использовать формат даты и времени, подходящий для локальных пользователей в нашей разработке.

SQL Server предлагает две функции ПРИВЕСТИ и ПРЕОБРАЗОВАТЬ в адресный формат даты и времени проблемы. Вы можете преобразовать текущую дату в соответствии с вашими местными стандартами, используя функцию ПРЕОБРАЗОВАТЬ. Здесь я покажу вы, как преобразовать текущие форматы даты и времени, используя функции CAST и CONVERT.

Приведенный ниже запрос отобразит вывод:

  • Функция SQL Server ПОЛУЧИТЬ.ДАТУ
  • В следующей строке кода используется функция CAST для преобразования существующего текущего формата даты и времени, отображаемого в первом столбце, в другой формат МММ ДД ГГГ ЧЧ:ММ.
  • Функция CONVERT также вернет тот же результат, что и функция CAST.

SELECT GETDATE() AS [Getdate],

CAST(GETDATE() AS NVARCHAR) AS [Получить дату с помощью CAST],

CONVERT(NVARCHARm GETDATE()) AS [Получить дату с помощью CONVERT]

Я бы порекомендовал вам посетить прикрепленную ссылку MSDN, чтобы получить все применимые форматы даты и времени, в которых мы можем получить текущую дату и время с помощью функции SQL Server GETDATE() с помощью функции CONVERT.

Я показал вам несколько примеров различных форматов даты и времени с использованием этих функций. Вы можете использовать их, если они подходит в соответствии с вашими требованиями, или вы можете перейти по прилагаемой ссылке и получить соответствующий номер формата, который будет использоваться в запросе для возврата даты и времени в этом конкретном формате.

В приведенном ниже примере я продемонстрировал отображение текущей даты и времени в различных форматах, начиная с номера формата 0. для формата № 7.

1

2

3

4

5

6

7

8

SELECT CONVERT(NVARCHARm GETDATE(), 0) AS [MMM DD YYYY HH:MM],

CONVERT(NVARCHARM GETDATE(), 1) AS [MMM/DD/YY],

CONVERT(NVARCHARM GETDATE() , 2) КАК [ГГ.ММ.ДД],

ПРЕОБРАЗОВАТЬ(NVARCHARm GETDATE(), 3) КАК [ДД/ММ/ГГ],

ПРЕОБРАЗОВАТЬ(NVARCHARMm GETDATE(), 4) КАК [ДД. ММ.ГГ ],

ПРЕОБРАЗОВАТЬ(NVARCHARm GETDATE(), 5) КАК [ДД-ММ-ГГ],

CONVERT(NVARCHARm GETDATE(), 6) КАК [ДД ММ ГГ],

CONVERT(NVARCHARm GETDATE(), 7) КАК [МММ ДД ГГ]

Результат приведенного выше запроса показан на изображении ниже, на котором вы можете увидеть все эти форматы текущих дата-время.

В ссылке MSDN доступны десятки форматов вместе с определенным номером формата, который мы передадим в приведенном выше запросе, чтобы получить текущую дату и время в соответствии с нашим желаемым форматом.

Заключение

Я объяснил обзор и различные варианты использования функции SQL Server GETDATE. Эта функция очень полезна чтобы вернуть текущую метку времени в нескольких форматах в зависимости от нашего требования. Вы можете понять это больше, рассматривая несколько примеров, приведенных в этой статье. Вы также можете попробовать другие функции даты и времени SQL Server, если функция SQL Server GETDATE не подходит для ваших требований. Узнайте больше об этих функциях, а также в разделы выше, где я сравнил их с функцией GETDATE.

  • Автор
  • Последние сообщения

Манвендра Сингх

Манвендра — энтузиаст баз данных, в настоящее время работает старшим архитектором в одном из ведущих MNC.

Он любит говорить и писать о технологиях баз данных. Он руководил и реализовывал множество проектов от проектирования до развертывания миграции в облако, гетерогенной миграции, консолидации баз данных, обновлений, гетерогенной репликации, решений HA / DR, автоматизации и крупных проектов по настройке производительности.

Вы также можете найти его на LinkedIn

Просмотреть все сообщения от Manvendra Singh

Последние сообщения от Manvendra Singh (посмотреть все)

DATE and DATETIME SQL Tutorial

Home » Tutorials » SQL » DATE and DATETIME

чрезвычайно разочаровывающие типы данных, и SQL не делает их более легкими в работе, чем другие языки. Хотя дата и время на самом деле являются совершенно разными типами данных, они часто объединяются в тип данных datetime. Дата и время SQL сами по себе довольно просты, хотя и требуют специального форматирования. Однако слияние этих двух вещей может оказаться одной из самых болезненных задач, с которыми вы столкнетесь в свои ранние годы. Хорошее эмпирическое правило — использовать время и дату вместе только тогда, когда вам это абсолютно необходимо или понадобится в будущем. Я объясню, почему даты и время усложняют ситуацию, через минуту. Во-первых, давайте посмотрим, как легко жить, когда вы просто работаете с датами.

Работа с датами SQL

Наша таблица «Пользователи»:

id username first last member_since
1 ohBillNotAgain Hillary Clinton 2011-12-25
2 internetCreator Al Gore 2011-12-8
3 Dontmesswithtexas Джордж Буш 2011-7-9

Попробуем собрать всех участников до 25 декабря 2011 г.

Пример
 SELECT *
ОТ пользователей
WHERE member_since < '2011-12-25' 
Result
id username first last member_since
2 internetCreator Al Gore 2011-12-8
3 dontMessWithTexas Джордж Буш 2011-7-9

Хорошо, мы сказали ДО 25 декабря 2011 года, что означает, что бедная Хиллари не включена, потому что она в этот день. Ал едва успел, но старый Джордж был задолго до нашей крайнего срока. Думаю, нам стоит поговорить о том, что произошло. До WHERE member_since < ‘2011-12-25’ мы знаем, что делали. Мы, наверное, догадались, что здесь происходит, но я побью дохлую лошадь. Мы проверяем наш столбец member_since, чтобы убедиться, что он меньше, <, нашей даты, которая была записана в одинарных кавычках как «2011-12-25». Часто при поиске в Google помощи с датами вы видите этот синтаксис, называемый «ГГГГ-ММ-ДД», где Y — это год, M — месяц, а D — день, очевидно. Каждое повторение является символом пробела для этого элемента. Итак, вам нужны только 2 цифры для месяца, потому что это имеет смысл, и, возможно, вам не нужны первые 2 символа года. Вместо этого вы просто пишете YY, чтобы получить 11. Достаточно просто, на замечательные DATETIMEs

Using DATETIME in SQL

Our New “Users” Table:

0009
id username first last last_login
1 ohBillNotAgain Hillary Clinton 2011 -12-24 12:59:15
2 InternetCreator AL GORE 2011-12-24 11:53:25
3 Dontmesswithtexas
3 Dontmesswithtexas
3 Dontmesswithtexas
Джордж Буш 24. 12.2011 16:24:17

Теперь мы пытаемся получить всех наших участников, которые вошли в систему до 13:00 24 декабря 2011 г. Пример

. 

* ОТ пользователей WHERE last_login < '2011-12-24 13:00:00'
Result
id username first last last_login
1 ohBillNotAgain Hillary Clinton 2011-12-24 12:59:15
2 InternetCreator AL GORE 2011-12-24 11:53:25

Плохой Георги тот же синтаксис, что и в предыдущем, за исключением того, что мы заменили имя столбца и использовали строку DATETIME для сравнения. Тип данных DATETIME содержит все те же элементы, что и тип данных DATE, а также строку времени. Обычно упоминается как «ГГГГ-ММ-ДД ЧЧ:ММ:СС». Опять же, в одинарных кавычках и с пробелом, отделяющим строку даты от строки времени, мы создаем нашу строку ДАТА для сравнения. Хиллари и Эл попали в список, потому что они вошли в систему до того, как DATETIME «2011-12-24 13:00:00» завершилось. Здесь все гораздо проще, чем кажется на практике. Это потому, что мы вставляем строку DATETIME вручную. В SQL есть несколько функций DATE, с которыми вы можете поиграться и заменить нашу строку на:

Важные функции SQL DATE

Примечание. Функции SQL DATE сильно отличаются в разных версиях SQL. Это MySQL.

  • CURDATE() — получает текущую дату
  • CURTIME() — получает текущее время
  • NOW() — получает и дату, и время (в формате DATETIME)

Если вы не используете MySQL, рассмотрите возможность переключения . Шучу, но не беспокойтесь, простой запрос в Google поможет вам найти нужные функции SQL для вашей базы данных SQL.

Ссылка/цитирование этой страницы

Если вы используете какой-либо контент на этой странице в своей работе, используйте приведенный ниже код, чтобы указать эту страницу в качестве источника контента.