Sql oracle как вычитать даты

Обновлено: 06.07.2024

ORACLEОдновременная функция времени (Sysdate)

1: текущая дата - первые несколько недель в этом месяце

2: Текущая дата - первый день недели, обратите внимание на воскресенье - первый день.

3: Дата недели - день недели.

4: Если таблица устанавливает индекс на поле типа даты, как использовать

5: получить текущую дату

6: Получите дату 0: 0AM 0 секунд утром

7. Получить 0: 0AM 0 секунд завтра

8: Дата этого месяца

9: получить дату следующего месяца

10: Вернитесь в последний день текущего месяца?

11: получить каждый день года

12: Сегодня это первый день в этом году

13: Как добавить 2 года в предоставлении существующей даты

14: судить, является ли ежегодная часть определенного дня года

15: в течение двух лет это год

16: получить дату даты

Время Oracle - минус миллисекунд, секунды, точки, время, дни, дни,

Oracle Два раз по умолчанию вычитания - это количество дней

Oracle два раза по умолчанию - количество дней * 24 - количество часов

Oracle Два раз уборки по умолчанию - это количество дней * 24 * 60 - количество минут

Oracle два раза минус по умолчанию - это количество дней * 24 * 60 * 60 - количество секунд.

Дать месяц даты 2 свидания1

Разница во времени расчета оракула выражение

Примечание. Количество дней можно напрямую уменьшено 2 датам, так что это удобнее

ПРИМЕЧАНИЕ. Вы можете использовать функцию Mistays_BeTween, удобнее

Интеллектуальная рекомендация

совместный запрос mysql с тремя таблицами (таблица сотрудников, таблица отделов, таблица зарплат)

1. Краткое изложение проблемы: (внизу есть инструкция по созданию таблицы, копирование можно непосредственно практиковать с помощью (mysql)) Найдите отделы, в которых есть хотя бы один сотрудник. Отоб.


[Загрузчик классов обучения JVM] Третий день пользовательского контента, связанного с загрузчиком классов


IP, сеанс и cookie

Арифметические операции над значениями даты/времени в PL/SQL

Основные операции над значениями даты/времени в Oracle сводятся к следующему набору:

  • Прибавление или вычитание интервала из значения даты/времени.
  • Вычитание одного значения даты/времени из другого для определения интервала между двумя значениями.
  • Прибавление или вычитание одного интервала из другого.
  • Умножение или деление интервала на число.

По историческим причинам я раздельно рассматриваю арифметические операции со значениями типа DATE и операции, в которых задействованы типы семейств TIMESTAMP и INTERVAL .

Операции с типами TIMESTAMP и INTERVAL

Вычисления с интервалами «дни/секунды» легко выполняются при работе с типами данных семейства TIMESTAMP . Создайте значение INTERVAL DAY TO SECOND и используйте его при сложении и вычитании. Например, прибавление к текущей дате 1500 дней, 4 часов, 30 минут и 2 секунд выполняется следующим образом:

С интервалами «годы/месяцы» дело обстоит сложнее. Продолжительность любого дня составляет 24 часа, или 1440 минут, или даже 86 400 секунд, но не все месяцы имеют одинаковую продолжительность в днях: 28, 29, 30 или 31 день. По этой причине простое прибавление одного месяца к дате может привести к неоднозначному результату. Допустим, вы прибавляете один месяц к последнему дню мая; что получится — последний день июня или недействительная дата 31 июня? Все зависит от того, что должны представлять интервалы.

Вычисления с типом INTERVAL YEAR TO MONTH лучше зарезервировать для тех значений даты/времени, которые усекаются по началу месяца или, скажем, по 15 числу — они плохо подходят для конца месяца. Если вам потребуется прибавить или вычесть сколько-то месяцев (или лет — аналогичная проблема возникает при прибавлении одного кода к 29 февраля 2008 года) из даты, в которой может быть задействован конец месяца, используйте функцию ADD_MONTHS . Эта функция, возвращающая тип DATE , решает проблему преобразованием соответствующих дат в последний день месяца вместо выдачи ошибки. Например, ADD_MONTHS('31-May-2008',1) вернет 30 июня 2008 года. Полученное значение DATE не содержит данных часового пояса (или долей секунд); если в результате должны присутствовать эти компоненты, вам придется реализовать дополнительную логику извлечения и повторного внесения этих компонентов в результат.

Аналогичной функции вычитания SUBTRACT_MONTHS не существует, но ADD_MONTHS можно вызывать с отрицательным количеством месяцев. Например, вызов ADD_MONTHS(current_date, -1) в приведенном примере вернет дату за один месяц до последнего дня апреля.

Операции с типом DATE

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

Прибавление четырех часов к текущей дате и времени:

Обратите внимание на использование дроби 4/24 вместо 1/6. При чтении кода сразу становится ясно, что значение, возвращаемое SYSDATE , увеличивается на 4 часа; а если использовать 1/6, программист, который будет заниматься сопровождением кода, будет долго ломать голову над тем, что должна означать эта таинственная дробь. Для еще более явного выражения намерений можно воспользоваться именованной константой:

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

Значение Выражение Представляет
1/24 1/24 Один час
1/1440 1/24/60 Одна минута
1/86400 1/24/60/60 Одна секунда

Используйте значения из табл. 10.4, и ваш код станет более понятным. Программист, привыкший к этим трем делителям, без труда поймет, что 40/86400 означает 40 секунд. Понять, что дробь 1/21610 означает то же самое, будет намного сложнее.

Вычисление интервала между двумя значениями DATE

Интервал между двумя значениями из семейства TIMESTAMP вычисляется простым вычитанием одного значения из другого. Результат всегда относится к типу INTERVAL DAY TO SECOND. Например:

Интервалы могут быть отрицательными или положительными. Отрицательный интервал означает, что более недавняя дата вычитается из даты, находящейся в прошлом:

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

Если вы вычисляете интервал между двумя значениями типа DATE , результатом является количество 24-часовых периодов (не то же самое, что количество дней) между ними. Если получено целочисленное значение, то разность представляет точное количество дней. Если же значение является дробным, то разность включает также некоторое количество часов, минут и секунд. Следующий пример взят из предыдущего раздела, но в нем используется тип DATE :

Три дня — понятно, но что такое 0.40208333333333333333333333333333333333? Даты часто усекаются перед вычитанием или же усекается полученный результат. Использование типов INTERVAL и TIMESTAMP значительно упрощает правильное усечение длинной дробной строки до часов, минут и секунд.

Для вычисления интервалов между двумя значениями DATE также удобно пользоваться функцией MONTHS_BETWEEN . Функция имеет следующий синтаксис:

Функция MONTHS_BETWEEN работает по следующим правилам:

  • Если дата_1 наступает позже даты_2 , MONTHS_BETWEEN возвращает положительное число.
  • Если дата_1 наступает раньше даты_2 , MONTHS_BETWEEN возвращает отрицательное число.
  • Если дата_1 и дата_2 относятся к одному месяцу, функция возвращает дробное значение из диапазона от –1 до +1.
  • Если дата_1 и дата_2 приходятся на последние дни соответствующих месяцев, функция возвращает целое число (без дробного компонента).
  • Если дата_1 и дата_2 относятся к разным месяцам и хотя бы одна из них не приходится на последний день месяца, функция возвращает дробное значение. (Дробный компонент вычисляется для месяцев, состоящих из 31 дня, с учетом разницы компонентов времени двух дат.)

Несколько примеров использования MONTHS_BETWEEN :

Вероятно, вы заметили здесь определенную закономерность. Как уже было сказано, функция MONTHS_BETWEEN вычисляет дробный компонент количества месяцев исходя из предположения, что каждый месяц содержит 31 день. Поэтому на каждый день сверх полного месяца к результату прибавляется 1/31 месяца:

В соответствии с этим правилом количество месяцев между 31 января 1994 года и 28 февраля 1994 года равно 1 — удобное целое число. Однако количество месяцев между 31 января 1994 года и 1 марта 1994 года увеличивается на .032258065. Как и в случае с вычитанием DATE , при работе с MONTHS_BETWEEN часто используется функция TRUNC .

Смешанное использование DATE и TIMESTAMP

Результатом вычитания двух TIMESTAMP является значение типа INTERVAL DAY TO SECOND . Результат вычитания с двумя значениями DATE представляет собой числовое значение. Соответственно, если требуется вычесть одно значение DATE из другого и вернуть значение INTERVAL DAY TO SECOND , вам придется преобразовать DATE в TIMESTAMP функцией CAST . Пример:

Если значения DATE и TIMESTAMP смешиваются в одном выражении вычитания, PL/SQL выполняет неявное преобразование DATE в TIMESTAMP . Пример:

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

Сложение и вычитание интервалов

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

Пример демонстрирует результаты трех вычитаний интервалов. В первых двух операциях участвуют интервалы INTERVAL DAY TO SECOND и INTERVAL YEAR TO MONTH . В третьей операции используется вычитание двух чисел. Запомните: при работе с типами DATE интервал между двумя значениями DATE выражается типом NUMBER . Так как месяц может состоять из 28, 29, 30 или 31 дня, при попытке суммирования или вычитания интервала «дни/секунды» с интервалом «годы/месяцы» происходит ошибка.

Умножение и деление интервалов

Операции умножения и деления не применимы к датам, но зато интервал можно умножить или разделить на число. Несколько примеров:

Типы данных INTERVAL без ограничений

Интервалы можно объявлять с разным уровнем точности, причем значения разной точностью не полностью совместимы между собой. Проблема особенно наглядно проявляется при написании процедур и функций, получающих параметры типа INTERVAL . Обратите внимание на потерю точности в следующем примере, где значение переменной dts удваивается с помощью функции double_my_interval :

Результат выполнения кода:

Цифры были потеряны не только в дробной части секунд, но и в значении количества дней. А если бы переменной dts было присвоено значение, равное 100 или более дням, попытка вызова функции double_my_interval привела бы к ошибке!

Дело в том, что задаваемая по умолчанию точность типов данных INTERVAL не равна максимально возможной точности. Обычно вызывающая программа передает точность параметров программе PL/SQL, но с типами данных INTERVAL используется принятая по умолчанию точность 2. Для решения этой проблемы можно воспользоваться типами данных INTERVAL , явно объявляемыми без ограничения точности:

  • YMINTERVAL_UNCONSTRAINED — принимает любое значение типа INTERVAL YEAR TO MONTH без потери точности;
  • DSINTERVAL_UNCONSTRAINED — принимает любое значение типа INTERVAL DAY TO SECOND без потери точности.

Воспользовавшись типом DSINTERVAL_UNCONSTRAINED , приведенный выше пример можно переписать следующим образом:

Результат будет таким:

Обратите внимание на то, что тип данных DSINTERVAL_UNCONSTRAINED используется дважды: один раз для задания типа формального параметра функции double_my_interval , а второй — для задания типа возвращаемого значения. В результате эту функцию можно вызывать для любого значения типа INTERVAL DAY TO SECOND без потери точности или ошибок.

У меня вопрос о внутренней работе с типами данных Oracle DATE и INTERVAL. Согласно Oracle 11.2 Справочник по SQL, когда вы вычитаете 2 типа данных DATE, результатом будет тип данных NUMBER.

При беглом тестировании это оказалось правдой:

Вернет тип данных NUMBER.

Но теперь, если вы это сделаете:

Вы получите тип данных INTERVAL. Другими словами, Oracle может преобразовать ЧИСЛО из вычитания ДАТЫ в тип ИНТЕРВАЛ.

Итак, теперь я решил, что могу попробовать ввести тип данных NUMBER прямо в скобки (вместо выполнения SYSDATE - start_date, что в любом случае приводит к NUMBER):

Но это приводит к ошибке:

Хорошо, я обычно не отвечаю на свои собственные вопросы, но после небольшого повозка я окончательно выяснил, как Oracle хранит результат вычитания DATE.

Когда вы вычитаете 2 даты, значение не является типом данных ЧИСЛО (как Справочное руководство по Oracle 11.2 SQL, чтобы вы поверили). Внутренний номер типа данных вычитания DATE равен 14, что является недокументированным внутренним типом данных (NUMBER - это internal тип данных номер 2). Однако на самом деле он хранится как 2 отдельных числа со знаком, дополняющих два дополнения, причем первые 4 байта используются для представления количества дней, а последние 4 байта используются для представления количества секунд.

Пример вычитания DATE, приводящего к положительной целочисленной разнице:

Напомним, что результат представлен в виде двух отдельных четырехбайтовых чисел со знаком и дополнением до двух. Поскольку в этом случае нет десятичных знаков (точно 364 дня и 0 часов), последние 4 байта равны нулю и могут быть проигнорированы. Для первых 4 байтов, поскольку мой процессор имеет архитектуру с прямым порядком байтов, байты меняются местами и должны читаться как 1,108 или 0x16c, что является десятичным 364.

Пример вычитания DATE, приводящего к отрицательной целочисленной разнице:

Опять же, поскольку я использую машину с прямым порядком байтов, байты меняются местами, и их следует читать как 255,250,97,224, что соответствует 11111111 11111010 01100001 11011111. Теперь, поскольку это двоичное кодирование со знаком дополнения до двух, мы знаем, что это число отрицательный, потому что крайняя левая двоичная цифра - 1. Чтобы преобразовать это в десятичное число, нам пришлось бы перевернуть дополнение до 2 (вычесть 1, затем выполнить дополнение до единицы), в результате получится: 00000000 00000101 10011110 00100000, что равно -368160, как предполагалось.

Пример вычитания ДАТЫ, приводящего к десятичной разнице:

Разница между этими двумя датами составляет 0,25 дня или 6 часов.

На этот раз, поскольку разница составляет 0 дней и 6 часов, ожидается, что первые 4 байта будут равны 0. Для последних 4 байтов мы можем перевернуть их (потому что ЦП имеет обратный порядок байтов) и получим 84,96 = 01010100 01100000 по основанию 2 = 21600 в десятичной системе. Преобразование 21600 секунд в часы дает вам 6 часов, что является той разницей, которую мы ожидали.

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

Выберите TIMEDIFF (STR_TO_DATE (' 19:15 PM ,'% h:% i% p '), STR_TO_DATE (' 9:58 AM ','% h: % i% p '))

Используйте функцию extract (), чтобы получить часы / минуты / секунды из значения интервала. См. Ниже пример, как получить часы из двух столбцов временных меток. Надеюсь это поможет!

Выберите INS_TS, MAIL_SENT_TS, извлечь (час из (INS_TS - MAIL_SENT_TS)) hourDiff из MAIL_NTFCTN;

Вычитание одной даты из другой дает число; вычитание одной временной метки из другой дает интервал.

Oracle преобразует метки времени в даты внутренне при выполнении арифметических операций с метками времени.

Константы интервала не могут использоваться в арифметике даты или времени.

Вы получаете синтаксическую ошибку, потому что математика даты не возвращает ЧИСЛО, но возвращает ИНТЕРВАЛ:

Вам нужно сначала преобразовать число в вашем примере в ИНТЕРВАЛ, используя Функция NUMTODSINTERVAL

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

Для получения текущей даты (без времени) в формате YYYY-MM-DD можно использовать функции:

Для получения текущего времени (без даты) в формате HH:MM:SS можно использовать функции:

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

SELECT CURDATE(); или SELECT CURRENT_DATE();

SELECT CURTIME(); или SELECT CURENT_TIME();

SELECT NOW(); или SELECT SYSDATE(); или SELECT CURRENT_TIMESTAMP;

Прибавление и вычитание временного интервала

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

  • Функция DATE_ADD(исходная_дата, INTERVAL выражение тип);
  • Функция ADDDATE (исходная_дата, INTERVAL выражение тип);
  • Выражение: исходная_дата + INTERVAL выражение тип.

Вычитание временного интервала также можно осуществить тремя способами:

  • Функция DATE_SUB(исходная_дата, INTERVAL выражение тип);
  • Функция SUBDATE (исходная_дата, INTERVAL выражение тип);
  • Выражение: исходная_дата - INTERVAL выражение тип.

Исходная_дата – это дата, к которой прибавляется или вычитается определенный интервал времени. Выражение – это сам прибавляемый или вычитаемый интервал времени, заданный в текстовом формате. Тип – аргумент, указывающий тип прибавляемого интервала. Этот параметр уточняет, как правильно интерпретировать выражение. Например, выражение ‘3:24’ можно интерпретировать и как 3 часа 24 минуты, и как 3 минуты 24 секунды. Если указан тип «MINUTE_SECOND», то интерпретация будет однозначной. Связь между аргументами выражение и тип показана в таблице :

Готовые работы на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту Узнать стоимость

Следующие три команды делают одну и ту же операцию. Они прибавляют секунду к заданному времени.

SELECT '2016-09-10 23:59:59' + Interval 1 SECOND;

SELECT ADDDATE('2016-09-10 23:59:59', Interval 1 SECOND);

SELECT DATE_ADD('2016-09-10 23:59:59', Interval 1 SECOND);

Результат всех трех команд одинаковый: 2016-09-11 00:00:00.

Следующие три команды вычисляют дату предшествующую заданной ровно на полтора года:

SELECT DATE_SUB('2016-09-10 23:59:59', Interval '1-6' YEAR_MONTH);

SELECT SUBDATE('2016-09-10 23:59:59', Interval '1-6' YEAR_MONTH);

SELECT '2016-09-10 23:59:59' - Interval '1-6' YEAR_MONTH;

Результат всех трех команд одинаковый : 2015-03-10 23:59:59.

Функции перевода в другие единицы

Иногда бывает удобно работать с датой, представленной в виде количества дней прошедших с года 0. Для перевода даты в такой формат и обратно в MySQL существует две функции:

  • TO_DAYS(дата) – возвращает номер дня соответствующего аргументу дата.
  • FROM_DAYS(номер_дня) – возвращает дату в соответствии с номером дня.

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

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

  • Функция TIME_TO_SEC(отрезок_времени) переводит отрезок времени в секунды.
  • Функция SEC_TO_TIME(секунды) переводит секунды в формат ‘часы:минуты:секунды’.

Следующая команда позволяет узнать, сколько секунд в периоде равном 2 часа, 23 минуты и 2 секунды:

Все ниже рассмотренные функции работают с календарными типами данных.

Получение текущей даты и времени.

Чтобы получить текущую дату и время используется функция NOW ().

SELECT NOW ()
Результат: 2015-09-25 14:42:53

Для получения только текущей даты есть функция CURDATE ().

SELECT CURDATE ()
Результат: 2015-09-25

И функция CURTIME (), которая возвращает только текущее время:

SELECT CURTIME ()
Результат: 14:42:53

Функции CURDATE () и NOW () удобно использовать для добавления в базу данных записей, для которых требуется хранить дату добавления. Например, при добавлении статьи на сайт хорошо бы хранить ее дату публикации. Тогда запрос на добавление статьи в базу будет примерно таким:

Прибавление и вычитание дат и времени

Функция ADDDATE (date, INTERVAL value) прибавляет к дате date значение value и возвращает полученное значение. В качестве value могут выступать следующие значения:

  • SECOND — секунды
  • MINUTE — минуты
  • HOUR — часы
  • DAY — дни
  • WEEK — недели
  • MONTH — месяцы
  • QUARTER — кварталы
  • YEAR — годы

а также их комбинации:

  • MINUTE_SECOND — минуты и секунды
  • HOUR_SECONDчасы — минуты и секунды
  • HOUR_MINUTE — часы и минуты
  • DAY_SECOND — дни, часы, минуты и секунды
  • DAY_MINUTE — дни, часы и минуты
  • DAY_HOUR — дни и часы
  • YEAR_MONTH — года и месяцы.

Функция SUBDATE (date, INTERVAL value) производит вычитание значения value из даты date . Пример:

Функция PERIOD_ADD (period, n) прибавляет к значению period n месяцев. Значение период должно быть представлено в формате YYYYMM (например сентябрь 2015 года будет 201509). Пример:

SELECT PERIOD_ADD (201509, 4)
Результат: 201601

Функция TIMESTAMPADD (interval, n, date) прибавляет к дате date временной интервал n , значения которого задаются параметром interval . Возможные значения параметра interval:

  • FRAC_SECOND — микросекунды
  • SECOND — секунды
  • MINUTE — минуты
  • HOUR — часы
  • DAY — дни
  • WEEK — недели
  • MONTH — месяцы
  • QUARTER — кварталы
  • YEAR — годы

Функция SUBTIME (date, time) вычитает из даты date время time. Пример:

Вычисление интервала между датами

Функция TIMEDIFF (date1, date2) вычисляет разницу в часах, минутах и секундах между двумя датами date1 и date2 . Пример:

Функция DATEDIFF (date1, date2) вычисляет разницу в днях между двумя датами, при этом часы, минуты и секунды при указании дат игнорируются. Пример:

С помощью этой функции легко определить сколько дней прошло с даты публикации статьи:

SELECT DATEDIFF (CURDATE (), date_publication) FROM posts WHERE id_post = 1

Функция PERIOD_DIFF (period1, period2) вычисляет разницу в месяцах между двумя датами. Даты должны быть представлены в формате YYYYMM . Например, узнаем сколько месяцев прошло с января 2015 по сентябрь 2015:

SELECT PERIOD_DIFF (201509, 201501)
Результат: 9

Функция TIMESTAMPDIFF (interval, date1, date2) вычисляет разницу между датами date2 и date1 в единицах указанных в параметре interval . При этом interval может принимать следующие значения:

  • FRAC_SECOND — микросекунды
  • SECOND — секунды
  • MINUTE — минуты
  • HOUR — часы
  • DAY — дни
  • WEEK — недели
  • MONTH — месяцы
  • QUARTER — кварталы
  • YEAR — годы

Получение различных форматов даты и времени и другой информации

Функция DATE (datetime) возвращает дату, отсекая время. Пример:

Функция TIME (datetime) возвращает время, отсекая дату. Пример:

Функция TIMESTAMP (date) возвращает полный формат со временем даты date . Пример:

DAY (date) и DAYOFMONTH (date). Функции-синонимы, которые возвращают порядковый номер дня месяца. Пример:

Функции DAYNAME (date), DAYOFWEEK (date) и WEEKDAY (date). Первая функция возвращает название дня недели, вторая — номер дня недели (отсчет от 1 — воскресенье до 7 — суббота), третья также номер дня недели только другой отсчет(отсчет от 0 — понедельник, до 6 — воскресенье). Пример:

Функции WEEK (date) и WEEKOFYEAR (datetime). Обе функции возвращают номер недели в году, только у первой неделя начинается с воскресенья, а у второй с понедельника. Пример:

Функция MONTH (date) возвращает числовое значение месяца (от 1 до 12), а MONTHNAME (date) название месяца. Пример:

Функция QUARTER (date) возвращает номер квартала года (от 1 до 4). Пример:

Функция YEAR (date) возвращает значение года (от 1000 до 9999). Пример:

Функция DAYOFYEAR (date) возвращает порядковый номер дня в году (от 1 до 366). Прмиер:

Функция HOUR (datetime) возвращает значение часа (от 0 до 23). Пример:

Функция MINUTE (datetime) возвращает значение минут (от 0 до 59). Пример:

Функция SECOND (datetime) возвращает значение секунд (от 0 до 59). Пример:

Функция EXTRACT (type FROM date) возвращает часть даты date определяемую параметром type . Пример:

Взаимообратные функции TO_DAYS (date) и FROM_DAYS (n). Первая преобразует дату в количество дней, прошедших с нулевого года. Вторая, наоборот, принимает число дней, прошедших с нулевого года и преобразует их в дату. Пример:

Взаимообратные функции UNIX_TIMESTAMP (date) и FROM_UNIXTIME (n). Первая преобразует дату в количество секунд, прошедших с 1 января 1970 года. Вторая, наоборот, принимает число секунд, с 1 января 1970 года и преобразует их в дату. Пример:

Взаимообратные функции TIME_TO_SEC (time) и SEC_TO_TIME (n). Первая преобразует время в количество секунд, прошедших от начала суток. Вторая, наоборот, принимает число секунд с начала суток и преобразует их во время. Пример:

Функция MAKEDATE (year, n) принимает год year и номер дня в году n и преобразует их в дату. Пример:

Читайте также: