Функции даты и времени


Содержание

лабы по информатике, егэ

лабораторные работы и задачи по программированию и информатике, егэ по информатике

PHP занятие 6. Функции даты и времени

Функции даты и функции времени php

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

Рассмотрим основные функции даты и функции времени php.

Функция date в php

Данная функция возвращает строку в виде даты и/или времени в указанном формате ( $format ). Шаблон формата указывается в качестве аргумента функции.

Рассмотрим варианты символов, которые распознаются в параметре формат:

Символ в параметре format Описание Пример возвращаемого значения

Функция даты php
День
d День месяца: две цифры с первым нулём от 01 до 31
D День недели в словесном представлении, 3 символа от Mon до Sun
j День месяца без первого нуля от 1 до 31
l (строчная «L») Полное словесное название дня недели от Sunday до Saturday
N Порядковый номер дня недели от 1 (понедельник) до 7 (воскресенье)
S Сокращение порядкового числительного дня месяца: два символа st, nd, rd или
th. Применяется вместе с j
w Порядковый номер дня недели от (воскресенье) до 6 (суббота)
z Порядковый номер дня в году (начиная с 0) От до 365
Неделя
W Порядковый номер недели года: недели начинаются с понедельника 33 (33-я неделя года)
Месяц
F Полное словесное название месяца, например May от January до December
m Порядковый номер месяца с первым нулём от 01 до 12
M Сокращенное словесное название месяца: три символа от Jan до Dec
n Порядковый номер месяца без первого нуля от 1 до 12
t Количество дней в указанном месяце от 28 до 31
Год
L Указывает на високосный год 1, если год високосный, иначе .
o Номер года 1999 или 2003
Y Порядковый номер года: четыре цифры 1998, 2008
y Номер года: две цифры 98, 08
Функции времени php
a Ante meridiem (с англ. «до полудня») или Post meridiem (с англ. «после полудня») am или pm
A Ante meridiem или Post meridiem заглавными буквами AM или PM
B Время в формате Интернет-времени от 000 до 999
g Часы в 12-часовом формате без первого нуля от 1 до 12
G Часы в 24-часовом формате без первого нуля от до 23
h Часы в 12-часовом формате с первым нулём от 01 до 12
H Часы в 24-часовом формате с первым нулём от 00 до 23
i Минуты с первым нулём от 00 до 59
s Секунды с первым нулём от 00 до 59
u Микросекунды Например, 654321
v Миллисекунды Например, 654
Временная зона
e Код шкалы временной зоны Например, UTC, GMT
I (заглавная i) Признак летнего времени 1, если дата соответствует летнему времени, в противном случае.
Полная дата/время
c Дата в формате, указанном в примере 2006-05-12T15:19:21+00:00
r Дата в формате, указанном в примере Например: Thu, 23 Dec 2010 18:05:07 +0200
U Количество секунд, прошедших с начала Эпохи Unix (с 1 января 1970 00:00:00 GMT)

Пример:

// выведет день недели в формате: Saturday echo date(«l»); // выведет дату в формате 2020-01-28 echo date(‘Y-m-d’); // выведет дату и время в формате: Saturday 8th of August 2020 06:13:44 PM echo date(‘l jS \of F Y h:i:s A’);

Функция time и mktime в php

time — возвращает количество секунд, прошедших с начала Эпохи Unix (c 1 января 1970 00:00:00 GMT) до текущего времени

Функция не предназначена для вывода результата в виде даты или времени, а используется совместно с другими функциями.
Пример использования функции в «чистом виде»:

$now = time(); // метка текущей даты echo $now; // выведет что-то типа 1485618140 $nextWeek = time() + (7 * 24 * 60 * 60); // 7 дней; 24 часа; 60 минут; 60 секунд echo $nextWeek; // выведет что-то типа 1486222940

Функция используется совместно с функцией date():

$now = time(); $nextWeek = time() + (7 * 24 * 60 * 60); // Сейчас: 2020-01-28 echo ‘Сейчас: ‘. date(‘Y-m-d’) .»\n»; // Сейчас: 2020-01-28 echo ‘Сейчас: ‘. date(‘Y-m-d’, $now) .»\n»; // Следующая неделя: 2020-02-04 echo ‘Следующая неделя: ‘. date(‘Y-m-d’, $nextWeek) .»\n»;

Функция используется совместно с функцией mktime:

mktime — возвращает метку времени Unix для указанной даты

Аргументы:

Аргументы могут быть опущены в порядке справа налево.

Рис. 6.1. Использование функции mktime и date

//Вывод текущей даты и времени echo date(«r»); //Sat, 28 Jan 2020 19:58:45 +0400 // создаем метку для «завтра» $tomorrow = mktime(0,0,0,date(«m»),date(«d»)+1, date(«Y»)); echo date(«r», $tomorrow); // Sun, 29 Jan 2020 00:00:00 +0400 // создаем метку для «следующий месяц» $nextmonth = mktime(0,0,0,date(«m»)+1,date(«d»), date(«Y»)); echo date(«r», $nextmonth ); //Tue, 28 Feb 2020 00:00:00 +0400 // создаем метку для «прошлый год» $lastyear= mktime(0,0,0,date(«m»)+1,date(«d»), date(«Y»)-1); echo date(«r», $lastyear); //Sun, 28 Feb 2020 00:00:00 +0400

  1. Создайте строковую переменную now
  2. Создайте строковую переменную birthday
  3. Присвойте переменной now значение метки времени актуальной даты (сегодня)
  4. Присвойте переменной birthday значение метки времени Вашего дня рождения
  1. Выведите фразу «До моего дня рождения осталось «
  2. Выведите количество секунд, оставшееся до Вашего дня рождения
  3. Закончите фразу » секунд»

Дополните код:

Использование функций даты и времени

  1. Создайте строковую переменную now .
  2. Присвойте переменной now значение метки времени актуальной даты (сегодня).
  3. Создайте переменную $H и присвойте ей значение часов, выделенных из значения переменной $now .
  4. Создайте переменную $i и присвойте ей значение минут, выделенных из значения переменной $now .
  5. Показывать текущее время в виде: … часов…мин . Изменять окончание слова часов/часа/час в зависимости от кол-ва часов и минут.

Напоминание:
Time() – возвращает текущее время
Date(format,время) – возвращает время, заданного вторым параметром в указанном формате:

Функция getdate в php

Функция getdate возвращает информацию о дате и/или времени

  • Возвращается ассоциативный массив с информацией о параметре timemetka , который представляет собой метку времени.
  • Если параметр не использовать, то будет взято текущее локальное время.

Индексы ассоциативного массива:

Использование функций даты и времени

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

  1. B. С использованием режима J3E или H3E, что удобнее.
  2. E) трепещущая неоднородность мифического времени и ее различие в разных религиях
  3. FUTURE SIMPLE (Формы простого будущего времени)
  4. I.3.3. Использование методов психодиагностики в работе школьного психолога.
  5. II) Найдитев тексте и выпишитев две колонки: наречия времении наречия места.
  6. II. Ряды Фурье для четных и нечетных функций.
  7. III. РАСПРЕДЕЛЕНИЕ УЧЕБНОГО ВРЕМЕНИ ПО СЕМЕСТРАМ, ТЕМАМ И ВИДАМ УЧЕБНЫХ ЗАНЯТИЙ
  8. IX. Интеграл Фурье для четной и нечетной функций.
  9. Linux использование консоли
  10. VI. ФИЛОСОФИЯ НОВОГО ВРЕМЕНИ И ЭПОХИ ПРОСВЕЩЕНИЯ
  11. X. вечности и времени,
  12. А. Использование предприятием общего режима налогообложения.

Идентификаторы объектов

III. Функции даты и времени

Функция используется для возвращения значения в точку вызова. Значение, возвращаемое функцией, определяется ее типом, например, функция Now() возвращает дату и время часов компьютера. Синтаксически функция выделяется круглыми скобками, следующими сразу за ее идентификатором (именем функции). Многие функции требуют наличия аргументов, которые записываются в этих скобках через точку с запятой при обращении к функции. Функции можно использовать для создания нового выражения или функции. Перед знакомством с функциями Access для работы с датами и временем сделаем несколько замечаний об именах объектов Access, т.к. они очень часто используются для построения условий отбора и при вычислениях.

Любой объект Access имеет имя, по которому его можно однозначно идентифицировать в некоторой системе объектов. Кроме обозначения коротким именем объекта, идентификатор можно обозначить и полным именем. Полное имя объекта является составным, т.к. состоит из двух коротких имен, разделяемых восклицательным знаком или точкой. Первое – имя класса объектов (таблицы, запроса, формы или отчета), второе – собственное имя объекта. Из-за использования указанных разделителей имена объектов не должны содержать символов «!» и «.». Символ «!» используется в Access для разделения имен таблиц и имен полей, например,

[Поставщики]![Адрес]

Microsoft Access хранит значения дат и времени как десятичные числа длиной восемь байт. Чтобы сообщить Access о том, что вы вводите дату и время, заключите значение в символы числа (#). Для указания конкретной даты используйте нотацию, которая вам кажется наиболее удобной. Например, #15 апреля 2008#, #15/04/08# и #15-апр-2008# определяют одну и ту же дату. Точно так же #5:30 PM# и #17:30# определяют время «семнадцать часов тридцать минут».

Access предоставляет несколько функций, которые могут оказаться полезными при задании условий отбора для дат и времени. Ниже приведены описания основных функций для работы с датами и временем (таблица 1).

Таблица 1 – Описание функций даты и времени

Функция Описание
Day(дата) Возвращает значение дня месяца в диапазоне от 1 до 31
Year(дата) Возвращает значение года в диапазоне от 100 до 9999
Month(дата) Возвращает значение месяца года в диапазоне от 1 до 12
Weekday(дата) По умолчанию возвращает целое число от 1 (Воскресенье) до 7 (Суббота), соответствующее дню недели
Hour(дата) Возвращает целое число от 0 до 23, представляющее значение часа
Now(0 Возвращает дату и время часов компьютера.
Date() Возвращает текущую системную дату
DateDiff() Находит разницу между двумя датами

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

Таблица 2 – Примеры применения функций

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

Month([Срок доставки])>=2 and Month([Срок доставки]) =2) или Month(#01.10.2008#), то это будет неверная запись, функция работать не будет.

Имя поля всегда указывается в квадратных скобках. Если вы написали условие фильтра и Вам в результатах отбора выдается сообщение типа (см. рисунок 18), следовательно, вы допустили ошибку в имени поля. Проверьте еще раз условие отбора на наличие орфографических ошибок в именах полей.

Рисунок 18 – Ошибка в имени поля при составлении условия отбора

Для функций Now() и Date() внутри скобок нельзя писать ни имена полей, ни условия отбора. Эти функции работают в том виде, в котором они есть изначально.

Если возникает необходимость выяснить номер текущего месяца или года, то условие отбора будет выглядеть следующим образом:

Year([Срок доставки])=Year(Date())

Month([Срок доставки])=Month(Date())

ЗАДАНИЕ 12

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

1. Выясните сколько поставщиков выполнило заказ в первые 2 месяца 2008 года.

2. Используя функции Year, Month, Date (), а также оператор And, выясните для поставщиков, чьим сроком доставки является текущий месяц 2008 года.

3. Выясните информацию о доставках, произведенных в апреле 2008 года.

4. Выясните данные о доставках проходивших с 15 по 29 мая 2008 года.

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

Результат покажите преподавателю.

Дата добавления: 2015-07-02 ; Просмотров: 3148 ; Нарушение авторских прав? ;

Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет

Функции даты и времени

Excel хранит дату в виде последовательных чисел (сериальных чисел), а время в виде десятичной части этого значения (время является частью даты). Значения даты и времени представляются числами, поэтому их можно использовать в вычислениях. Например, чтобы определить длительность промежутка времени, можно вычесть из конечного начальный момент времени. При использовании основного формата для ячеек, содержащих дату и время, можно отобразить дату в виде числа или время в виде дробной части числа с десятичной точкой.

Excel поддерживает две системы дат: 1900 и 1904. По умолчанию используется система дат 1900. Чтобы воспользоваться системой дат 1904, необходимо выбрать команду Параметры в меню Сервис, а затем на вкладке Вычисления установить опцию Система дат 1904.

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

Поле Выражение Описание
Дата доставки
Система дат Первая дата Последняя дата
1900 1 января 1900 г. (значение 1) 31 декабря 9999 г. (значение 2958465)
1904 2 января 1904 г. (значение 1) 31 декабря 9999 г. (значение 2957003)

Результат:
Числовой формат для времени суток, представленного аргументом врeмя_как_текст. Время сугок в числовом формате — это десятичная дробь в интервале от 0 до 0,99999999, представляющая время суток от 0:00:00 (12:00:00 ночи) до 23:59:59 (11:59:59 вечера). Функция ВРЕМЗНАЧ используется для преобразования времени суток, представленного в виде текста, в числовой формат времени суток.

время_как_текст- текстовая строка, содержащая значение времени суток в любом формате, допустимом в Excel. Информация о дате в аргументе время_как_текст игнорируется.

Значение времени в числовом формате, соответствующее введенным аргументам. Это десятичная дробь в интервале от 0 до 0,99999999, представляющая время суток от 0:00:00 (12:00:00 ночи) до 23:59:59 (11:59:59 вечера).

часы- число от 1 до 24 (количество часов);

минуты- число от 1 до 59 (количество минут); секунды число от 1 до 59 (количество секунд).

Результат:
Год, соответствующий заданному сериальному числу. Год определяется как целое в интервале от 1900 до 9999.

дата_в_числовом_формате- сериальное число. Данный аргумент можно задать как текст, например «19/Мар/1955», или «19-3-55». При этом текст автоматически преобразуется в дату в числовом формате.

Если в панели Вычисления диалогового окна Параметры установлена опция Система дат 1904, в качестве начала отсчета принимается 02/01/1904 вместо 01/01/1900.

Результат:
Сериальное число (от 0 до 2958456), соответствующее дате в числовом формате (в качестве начала отсчета принимается 01 января 1900 года).

год- число (год) от 1900 до 9999 (или от 0 до 8099 соответственно);

месяц- номер месяца в году (если значение аргумента больше 12, то это число делится на 12, частное прибавляется к указанному значению года, а остаток выступает в качестве номера месяца; так, функция ДАТА(98,14,2) возвращает числовой формат даты 2 февраля 1999 года);

день- номер дня в месяце (если аргумент- день больше числа дней в указанном месяце, то алгоритм вычислений аналогичен описанному для аргумента месяц’, так, функция ДАТА(99,1,35) возвращает числовой формат даты 4 февраля 1999 года).

См. функцию ГОД.

Результат:
Соответствующее дате сериальное число, представленное в текстовом виде, Функция ДАТАЗНАЧ используется для преобразования даты из текстового представления в числовой формат.

дата_как_текст- текст, содержащий дату в формате даты Excel. При использовании в Excel истемы дат, принятой по умолчанию для Windows 95/98, аргумент дата_как_текст должен представлять собой дату в диапазоне от 1 января 1900 года до 31 декабря 9999 года. При использовании в Excel системы дат, принятой по умолчанию для Macintosh, аргумент дата_как_текст должен представлять собой дату в диапазоне от 1 января 1904 года до 31 декабря 9999 года. Функция ДАТАЗНАЧ возвращает значение ошибки #ЗНАЧ!, если значение аргумента дата_как_текст выходит за пределы указанных диапазонов. Если в аргументе дата_как_текст опушен год, то функция ДАТАЗНАЧ использует значение текущего года из встроенных часов компьютера. Информация о времени суток в аргументе дата_ как_текст игнорируется.

См. функцию ГОД.

Результат:
Сериальное число для даты, отстоящей на заданное количество месяцев от начальной.

нач_дата- сериальное число, соответствующее начальной дате;

число_месяцев- количество месяцев (может быть положительным или отрицательным).

Результат:
Число месяца, соответствующее заданной дате (целое число от 1 до 31).

дата_в_числовом_формате- значение даты, заданное в виде сериального числа от 0 до 65380 или в виде текста в стандартных Excel-форматах, например «29/12/63» или «15-01-01». При этом текст будет автоматически преобразован в дату в числовом формате.

См. функцию ГОД.

Синтаксис:
ДEНЬНEД(дата в_числовом_формате, тип)

Результат:
День недели, соответствующий заданному сериальному числу. День недели определяется как целое в интервале от 1 (воскресенье) до 7 (суббота).

дата_в_числовом_форматe- сериальное число; этот аргумент можно задать как текст, например, как «15/Янв/1999», или «04-. . . , 15-99.», при этом текст автоматически преобразуется в значение даты в числовом формате;

тип- число, которое определяет тип возвращаемого значения. Этот аргумент может принимать следующие значения:

Значение Возвращаемое число аргумента 1 или опущен Число от 1 (воскресенье) до 7 (суббота) 2 Число от 1 (понедельник) до 7 (воскресенье) 3 Число от 0 (понедельник) до 6 (воскресенье)

Результат:
Количество дней между двумя датами на основе 360-дневного года (двенадцать 30-дневных месяцев). Эта функция используется для расчета платежей, если бухгалтерские операции основываются на двенадцати 30-дневных месяцах.

нач_дата, кон_цата- две даты, количество дней между которыми требуется определить (аргументы могут быть либо текстовыми строками, в которых используются цифры для задания месяца, дня и года (например «30/01/99» или «30-01-99»), либо датами в числовом формате; если аргумент нач_дата превосходит аргумент кон_дата, то функция ДНЕЙ360 возвращает отрицательное число); метод логическое значение, которое определяет, какой метод, европейский или американский, должен использоваться при вычислениях. Этот аргумент может принимать значения ЛОЖЬ (американский метод; принимается по умолчанию) или ИСТИНА (европейский метод).

Чтобы определить количество дней между двумя датами в нормальном году, следует использовать обычное вычитание. Например, «31/12/99» — «01/01/99» = 364.

Синтаксис:
ДОЛЯГОДА(нач_дата,кон_дата, базис)

Результат:
Часть года, соответствующая количеству дней от начальной даты до конечной (продолжительность года принимается за единицу).

нач_дата, кон_дата- сериальные числа для начальной и конечной дат;

базис- число от 0 (принимается по умолчанию; означает американский стандарт) до 5, определяющее режим расчета.

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

нач_дата- сериальное число, представляющее начальную дату;

число_месяцев- количество месяцев (может быть положительным или отрицательным) .

Результат:
Номер месяца, соответствующий заданному сериальному числу. Номер месяца определяется как целое число в интервале от 1 (январь) до 12 (декабрь).


дата_в_числовом_формате- сериальное число. Данный аргумент можно задать как текст, например «15-4-1999″ или»15-Янв-1999», а не как число. При этом текст автоматически преобразуется в дату в числовом формате. См. функцию ГОД.

Результат:
Количество минут (целое число от 0 до 59) в значении времени суток, соответствующем заданному сериальному числу.

дата_в_числовом_формате- сериальное число. Данный аргумент можно задать как текст, например «16:48:00» или «4:48:00 РМ», а не как число. При этом текст автоматически преобразуется в дату в числовом формате.

Результат:
Возвращает число, которое указывает, на какую неделю года приходится указанная дата. Если эта функция недоступна, то следует установить надстройку Пакет анализа.

дата_в_числовом_формате- дата в числовом формате;

тип- число, которое определяет первый день недели (1 — воскресенье, 2 — понедельник).

Результат:
Сериальное число для даты, отстоящей на заданное число рабочих дней от начальной даты.

нач_дата- начальная дата в виде сериального числа;

количество_дней- число дней;

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

Результат:
Сериальное число текущей даты.

Результат:
Количество секунд (целое число от 0 до 59) в значении времени, соответствующем заданному сериальному числу. Функция СЕКУНДЫ используется для того, чтобы получить значение количества секунд времени суток, заданного датой в числовом формате.

дата_в_числовом_формате- сериальное число. Этот аргумент можно задать как текст, например «16:48:23» или «4:48:47 РМ», а не как число. При этом текст автоматически преобразуется в дату в числовом формате.

Результат:
Сериальное число, соответствующее текущему времени суток и текущей дате (внутренних часов операционной системы).

См. также функцию ГОД; результат функции актуализируется только при новом вычислении таблицы.

Результат:
Количество часов, соответствующее заданному сериальному числу. Определяется как целое в интервале от 0 (12:00 AM) до 23 (11:00 РМ).

дата_в_числовом_формате- сериальное число. Данный аргумент можно задать как текст, например «16:48:00» или «4:48:00 РМ». При этом текст будет автоматически преобразован в дату в числовом формате.

Результат:
Количество рабочих дней между двумя датами.

нач_дата, кон_дата- сериальные числа для начальной и конечной дат;

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

SQL — Функции даты

Дата публикации: 2020-12-13

От автора: сегодня мы поговорим о том, как работают в SQL функции даты. В следующей таблице приведен список всех важных функций, связанных с датой и временем, которые доступны. Существуют и другие, поддерживаемые различными СУБД. Данный список представляет функции, доступные в СУБД MySQL.

ADDDATE(). Добавляет даты

ADDTIME(). Добавляет время

CONVERT_TZ(). Преобразует из одного часового пояса в другой

CURDATE(). Возвращает текущую дату

Как создать сайт самому?

Какие технологии и знания необходимы сегодня, чтобы создавать сайты самостоятельно? Узнайте на интенсиве!

CURRENT_DATE(), CURRENT_DATE. Синонимы для CURDATE()

CURRENT_TIME(), CURRENT_TIME. Синонимы для CURTIME()

CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP. Синонимы для NOW()

CURTIME(). Возвращает текущее время

DATE_ADD(). Слагает две даты

DATE_FORMAT(). Задает указанный формат даты

DATE_SUB(). Вычитает одну дату из другой

DATE(). Извлекает часть, относящуюся к дате, из выражения представляющего дату или время и дату

DATEDIFF(). Вычитает одну дату из другой

DAY(). Синоним для DAYOFMONTH()

DAYNAME(). Возвращает день недели

DAYOFMONTH(). Возвращает день месяца (1-31)

DAYOFWEEK(). Возвращает индекс дня недели аргумента

DAYOFYEAR(). Возвращает номер дня в году (1-366)

EXTRACT. Извлекает часть, относящуюся к дате

FROM_DAYS(). Преобразует номер дня в дату

FROM_UNIXTIME(). Форматирует дату как временную метку UNIX

HOUR(). Извлекает час

LAST_DAY. Возвращает последний день месяца для аргумента

LOCALTIME(), LOCALTIME. Синоним для NOW()

LOCALTIMESTAMP, LOCALTIMESTAMP (). Синоним для NOW()

MAKEDATE(). Создает дату из года и дня года

MAKETIME. MAKETIME(). MICROSECOND(). Возвращает микросекунды из аргумента

MINUTE(). Возвращает минуты из аргумента

MONTH(). Возврат месяца из даты

MONTHNAME(). Возвращает название месяца

NOW(). Возвращает текущую дату и время

PERIOD_ADD(). Добавляет период к году-месяцу

PERIOD_DIFF(). Возвращает количество месяцев между периодами

QUARTER(). Возвращает квартал из аргумента

SEC_TO_TIME(). Преобразует секунды в формат «HH: MM: SS»

SECOND(). Возвращает секунды (0-59)

STR_TO_DATE(). Преобразует строку в дату

SUBDATE(). При вызове с тремя аргументами синоним DATE_SUB()

SUBTIME(). Вычитает время

SYSDATE(). Возвращает время выполнения функции

TIME_FORMAT(). Задает формат времени

TIME_TO_SEC(). Возвращает аргумент, преобразованный в секунды

TIME(). Извлекает часть, относящуюся ко времени, из переданного выражения

TimeDiff(). Вычитает время

TIMESTAMP(). С одним аргументом эта функция возвращает выражение даты или даты и времени. С двумя аргументами — слагает эти два аргумента

TIMESTAMPADD(). Добавляет интервал к выражению даты и времени

TIMESTAMPDIFF(). Вычитает интервал из выражения даты и времени

TO_DAYS(). Возвращает аргумент даты, преобразованный в дни

UNIX_TIMESTAMP(). Возвращает временную метку UNIX

UTC_DATE(). Возвращает текущую дату UTC

UTC_TIME(). Возвращает текущее время UTC

UTC_TIMESTAMP(). Возвращает текущую дату и время UTC

WEEK(). Возвращает номер недели

WEEKDAY(). Возвращает индекс дня недели

WEEKOFYEAR(). Возвращает календарный номер недели (1-53)

YEAR(). Возвращает год

YEARWEEK(). Возвращает год и неделю

ADDDATE(date,INTERVAL expr unit), ADDDATE(expr,days)

При вызове со вторым аргументом, заданным в виде INTERVAL, функция ADDDATE() является синонимом DATE_ADD(). Связанная функция SUBDATE() является синонимом DATE_SUB(). Информацию об аргументе блока INTERVAL см. в разделе DATE_ADD().

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

ADDTIME(expr1,expr2)

ADDTIME () добавляет expr2 к expr1 и возвращает результат. Expr1 является выражением времени или даты и времени, в то время как expr2 является выражением времени.

CONVERT_TZ(dt,from_tz,to_tz)

Преобразует значение даты и времени dt из часового пояса, заданного в from_tz, в часовой пояс, заданный в to_tz, и возвращает полученное значение. Эта функция возвращает NULL, если аргументы недействительны.

CURDATE()

Возвращает текущую дату как значение в формате «YYYY-MM-DD» или YYYYMMDD, в зависимости от того, используется ли эта функция в строковом или в числовом контексте.

CURRENT_DATE и CURRENT_DATE()

CURRENT_DATE и CURRENT_DATE() являются синонимами для CURDATE()

CURTIME()

Возвращает текущее время как значение в формате «HH: MM: SS» или HHMMSS, в зависимости от того, используется ли функция в строковом или в числовом контексте. Значение выражается для текущего часового пояса.

CURRENT_TIME и CURRENT_TIME()

CURRENT_TIME и CURRENT_TIME() являются синонимами для CURTIME().

CURRENT_TIMESTAMP и CURRENT_TIMESTAMP()

CURRENT_TIMESTAMP и CURRENT_TIMESTAMP() являются синонимами для NOW().

DATE(expr)

Извлекает часть, относящуюся к дате, из выражения даты или даты и времени expr.

DATEDIFF(expr1,expr2)

DATEDIFF() возвращает expr1.expr2, выраженное как количество дней между двумя датами. И expr1, и expr2 являются выражениями даты или даты и времени. В расчетах используются только части относящиеся к дате.

DATE_ADD(date,INTERVAL expr unit), DATE_SUB(date,INTERVAL expr unit)

Эти функции выполняют арифметические операции с датами. date представлено как значение DATETIME или DATE, указывающее начальную дату. expr представляет собой выражение, определяющее значение интервала, который нужно добавить или вычесть из исходной даты. expr — это строка; она может начинаться с «-» для отрицательных интервалов.

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

Значения QUARTER и WEEK доступны в MySQL начиная с версии 5.0.0.

DATE_FORMAT (date,format)

Эта команда задает формат значения date в соответствии с указанной строкой format. В строке format могут использоваться следующие указатели. Перед указателями формата необходимо добавлять символ ‘%’.

%a. Сокращенное название дня недели (Sun..Sat)

%b. Сокращенное название месяца (Jan..Dec)

%с. Числовое обозначение месяца (0…12)

%D. День месяца с английским суффиксом (0, 1, 2, 3,.)


%d. Числовое обозначение дня месяца (00..31)

%е. Числовое обозначение дня месяца (00..31)

%f. Микросекунды (000000..999999)

%i. Числовое обозначение минут (00..59)

%J. День года (001..366)

%M. Название месяца (January..December)

%м. Числовое обозначение месяца (00..12)

%r. Время, 12-часовой формат (чч: мм: сс, за которым следуют AM или PM)

%Т. Время, 24-часовой формат (чч: мм: сс)

%U. Неделя (00..53), где воскресенье — первый день недели

%u. Неделя (00..53), где понедельник — первый день недели

%V. Неделя (01..53), где воскресенье — первый день недели; используется вместе с %X

%v. Неделя (01..53), где понедельник — первый день недели; используется вместе с %x

%W. Название дня недели (Sunday..Saturday)

%w. День недели (0=Sunday..6=Saturday)

Как создать сайт самому?

Какие технологии и знания необходимы сегодня, чтобы создавать сайты самостоятельно? Узнайте на интенсиве!

%X. Год для недели, где первый день недели — воскресенье, число из четырех цифр; используется вместе с %V

%x. Год для недели, где первый день недели — понедельник, число из четырех цифр; используется вместе с %V

%Y. Год, число, четыре цифры

%y. Числовое обозначение года (две цифры)

%x. x, для всех .x., не перечисленных выше

DATE_SUB(date,INTERVAL expr unit)

Аналогично функции DATE_ADD ().

DAY(date)

DAY() является синонимом функции DAYOFMONTH().

DAYNAME(date)

Возвращает день недели для указанной даты.

DAYOFMONTH(date)

Возвращает день месяца для указанной даты в диапазоне от 0 до 31.

DAYOFWEEK(date)

Возвращает индекс дня недели (1 = Sunday, 2 = Monday, ., 7 = Saturday). Эти значения индекса соответствуют стандарту ODBC.

DAYOFYEAR(date)

Возвращает день года для указанной даты в диапазоне от 1 до 366.

EXTRACT(unit FROM date)

Функция EXTRACT() использует те же типы указателей единиц измерения, что и DATE_ADD() или DATE_SUB(), но не выполняет арифметические операции с датами, а извлекает из даты часть относящуюся к указателю единиц измерения.

FROM_DAYS(N)

Возвращается значение DATE с учетом числа дней N.

Примечание. Используйте FROM_DAYS() для старых дат осторожно. Функция не предназначена для работы со значениями дат до введения григорианского календаря (1582).

FROM_UNIXTIME(unix_timestamp), FROM_UNIXTIME(unix_timestamp,format)

Возвращает представление аргумента unix_timestamp как значение в формате «YYYY-MM-DD HH: MM: SS или YYYYMMDDHHMMSS» в зависимости от того, используется ли эта функция в строковом или в числовом контексте. Значение выражается в текущем часовом поясе. Параметр unix_timestamp является внутренним значением метки времени, которое создается функцией UNIX_TIMESTAMP().

Если format указано, результат форматируется в соответствии со строкой format, которая используется так же, как описано в разделе DATE_FORMAT().

HOUR(time)

Возвращает часы из указанного времени. Диапазон возвращаемого значения составляет от 0 до 23. Однако диапазон значений TIME на самом деле намного больше, поэтому HOUR может возвращать значения, превышающие 23.

LAST_DAY(date)

Принимает значение даты или даты и времени и возвращает значение, соответствующее последнему дню месяца. Возвращает NULL, если аргумент недействителен.

LOCALTIME и LOCALTIME()

LOCALTIME и LOCALTIME() являются синонимами для NOW().

LOCALTIMESTAMP и LOCALTIMESTAMP()

LOCALTIMESTAMP и LOCALTIMESTAMP() являются синонимами для NOW().

MAKEDATE(year,dayofyear)

Возвращает значения даты, заданного года и дня года. Значение dayofyear должно быть больше 0 или результат будет NULL.

MAKETIME(hour,minute,second)

Возвращает значение времени, рассчитанное из аргументов hour, minute и second.

MICROSECOND(expr)

Возвращает микросекунды из выражения времени или выражения datetime(expr) в виде числа в диапазоне от 0 до 999999.

MINUTE(time)

Возвращает минуты для указанного времени, в диапазоне от 0 до 59.

MONTH(date)

Возвращает месяц для указанной даты в диапазоне от 0 до 12.

MONTHNAME(date)

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

Возвращает текущую дату и время как значение в формате «YYYY-MM-DD HH: MM: SS» или YYYYMMDDHHMMSS, в зависимости от того, используется ли функция в строковом или числовом контексте. Это значение выражается в текущем часовом поясе.

PERIOD_ADD(P,N)

Добавляет N месяцев к периоду P (в формате YYMM или YYYYMM). Возвращает значение в формате YYYYMM. Обратите внимание, что аргумент периода P не является значением даты.

PERIOD_DIFF(P1,P2)

Возвращает количество месяцев между периодами P1 и P2. Периоды P1 и P2 должны указываться в формате YYMM или YYYYMM. Обратите внимание, что аргументы периодов P1 и P2 не являются значениями даты.

QUARTER(date)

Возвращает квартал года для указанной даты в диапазоне от 1 до 4.

SECOND(time)

Возвращает значение секунд для времени в диапазоне от 0 до 59.

SEC_TO_TIME(seconds)

Возвращает аргумент seconds, преобразованный в часы, минуты и секунды в формате «HH: MM: SS» или HHMMSS, в зависимости от того, используется ли функция в строковом или числовом контексте.

STR_TO_DATE(str,format)

Это инверсивная функция к функции DATE_FORMAT(). Она принимает строку str и строку формата format. Функция STR_TO_DATE() возвращает значение DATETIME, если строка формата содержит как дату, так и время. В противном случае она возвращает значение DATE или TIME, если строка содержит только дату или время.

SUBDATE(date,INTERVAL expr unit) и SUBDATE(expr,days)

Если SUBDATE() вызывается со вторым аргументом, заданным в виде INTERVAL, функция является синонимом DATE_SUB(). Информацию об аргументе INTERVAL смотрите в разделе DATE_ADD().

SUBTIME(expr1,expr2)

Функция SUBTIME() возвращает expr1. expr2 выражается как значение в том же формате, что и expr1. Значение expr1 является выражением времени или даты и времени, а значение expr2 является выражением времени.

SYSDATE()

Возвращает текущую дату и время как значение в формате «YYYY-MM-DD HH: MM: SS» или YYYYMMDDHHMMSS, в зависимости от того, используется ли функция в строковом или в числовом контексте.

TIME(expr)

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

TIMEDIFF(expr1,expr2)

Функция TIMEDIFF() возвращает expr1 . expr2 выражается как значение времени. Значения expr1 и expr2 представляют собой выражения времени или даты и времени, но оба они должны быть одного типа.

TIMESTAMP (expr), TIMESTAMP (expr1, expr2)

С одним указанным аргументом эта функция возвращает выражение даты или даты и времени expr, как значение даты и времени. С двумя аргументами она добавляет выражение времени expr2 к выражению даты или даты и времени expr1 и возвращает результат как значение даты и времени.

TIMESTAMPADD(unit,interval,datetime_expr)

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

Значение unit может быть указано с использованием одного из ключевых слов, как было показано выше, или с префиксом SQL_TSI_. Например, DAY и SQL_TSI_DAY являются действительными значениями.

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)

Возвращает целочисленную разницу между выражениями даты или даты и времени datetime_expr1 и datetime_expr2. Единицы измерения для результата задаются аргументом unit. Действительными для аргумента unit являются те же значения, которые были перечислены в описании функции TIMESTAMPADD().

TIME_FORMAT(time,format)

Эта функция используется так же, как и функция DATE_FORMAT(), но строка format может содержать указатели формата только для часов, минут и секунд.

Если значение времени содержит часть, относящуюся к часам, которая больше 23, указатели формата часов %H и %k дают значение, большее, чем обычный диапазон от 0 до 23. Другие указатели формата часов дают значение часа 12 по модулю.

TIME_TO_SEC(time)

Возвращает аргумент time, преобразованный в секунды.

TO_DAYS(date)

Возвращает номер дня (количество дней с 0-го года) для заданной даты date.

UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)

Если эта функция вызывается без аргумента, она возвращает временную метку Unix (секунды с «1970-01-01 00:00:00» UTC), как целое положительное число. Если UNIX_TIMESTAMP() вызывается с аргументом date, она возвращает значение аргумента, выраженное в секундах с «1970-01-01 00:00:00» UTC. date может быть строкой DATE, строкой DATETIME, TIMESTAMP или числом в формате YYMMDD или YYYYMMDD.

UTC_DATE, UTC_DATE()

Возвращает текущую дату UTC как значение в формате «YYYY-MM-DD» или YYYYMMDD, в зависимости от того, используется ли эта функция в строковом или числовом контексте.

UTC_TIME, UTC_TIME()

Возвращает текущее время UTC как значение в формате «HH: MM: SS» или HHMMSS, в зависимости от того, используется ли функция в строковом или числовом контексте.

UTC_TIMESTAMP, UTC_TIMESTAMP()

Возвращает текущую дату и время UTC как значение «YYYY-MM-DD HH: MM: SS» или в формате YYYYMMDDHHMMSS, в зависимости от того, используется ли эта функция в строковом или в числовом контексте.

WEEK(date[,mode])

Эта функция возвращает номер недели для заданной даты date. Форма WEEK() с двумя аргументами позволяет указать, будет ли неделя начинаться в воскресенье или в понедельник, и должно ли возвращаемое значение находиться в диапазоне от 0 до 53 или от 1 до 53. Если аргумент mode опущен, используется значение системной переменной default_week_format

WEEKDAY(date)

Возвращает индекс дня недели для заданной даты date (0 = понедельник, 1 = вторник, 6 = воскресенье).

WEEKOFYEAR(date)

Возвращает календарную неделю для заданной даты date как число в диапазоне от 1 до 53. WEEKOFYEAR() — это функция совместимости, эквивалентная WEEK(date,3).


YEAR(date)

Возвращает год для заданной даты date в диапазоне от 1000 до 9999 или 0 для даты .zero.

YEARWEEK(date), YEARWEEK(date,mode)

Возвращает год и неделю для заданной даты date. Параметр mode работает точно так же, как аргумент mode для функции WEEK(). Год в результате может отличаться от года в аргументе даты для первой и последней недели года.

Примечание. Номер недели отличается от того, что вернет функция WEEK() (0) для необязательных аргументов 0 или 1, так как WEEK() вернет неделю в контексте данного года.

Редакция: Команда webformyself.

Как создать сайт самому?

Какие технологии и знания необходимы сегодня, чтобы создавать сайты самостоятельно? Узнайте на интенсиве!

Функции даты и времени

Функция DATEDIF (РАЗНДАТ) в Excel. Как использовать?

Функция DATEDIF (РАЗНДАТ) в Excel используется для подсчета количества лет, месяцев или дней между двумя датами. Хороший пример – подсчет возраста. Что возвращает функция Число, обозначающее количество лет/месяцев/дней…

Функция WEEKDAY (ДЕНЬНЕД) в Excel. Как использовать?

Функция WEEKDAY (ДЕНЬНЕД) в Excel используется для вычисления порядкового номера дня недели (от 1 до 7). Что возвращает функция Число от “1” до “7” в зависимости от даты, из…

Функция TODAY (СЕГОДНЯ) в Excel. Как использовать?

Функция TODAY (СЕГОДНЯ) в Excel используется для получения текущей даты. Она полезна когда расчеты в таблице, и её значения, зависят от даты на момент открытия файла. Также, функция может быть…

Функция WORKDAY (РАБДЕНЬ) в Excel. Как использовать?

Функция WORKDAY (РАБДЕНЬ) в Excel используется для вычисления даты завершения проектов/работ. Например, если сегодня я начну проект, и для его завершения потребуется 20 рабочих дней, я могу с…

Функция SECOND (СЕКУНДЫ) в Excel. Как использовать?

Функция SECOND (СЕКУНДЫ) в Excel используется для вычисления значения секунд из какой-либо даты. Что возвращает функция Возвращает число от “0” до “59”, в зависимости от даты, из которой…

Функция NOW (ТДАТА) в Excel. Как использовать?

Функция NOW (ТДАТА) используется в Excel для получения данных текущей даты и времени. Чаще всего, её применяют когда необходимо обновлять данные таблицы на дату и время открытия файла,…

Функция NETWORKDAYS (ЧИСТРАБДНИ) в Excel – Как использовать?

Функция NETWORKDAYS (ЧИСТРАБДНИ) в Excel используется для вычисления количества рабочих дней между двумя датами. Расчет происходит за исключением выходных дней между указанными датами (по умолчанию суббота и воскресенье считаются выходными…

Как использовать функцию MINUTE (МИНУТЫ) в Excel

Функцию MINUTE (МИНУТЫ) в Excel следует использовать, если вы хотите получить значение минут из любых данных времени. Что возвращает функция Возвращает числа в промежутке между “0” и “59” (в…

Как использовать функцию HOUR (ЧАС) в Excel

Функция HOUR (ЧАС) в Excel используется для вычисления значения часа из какого-либо значения времени. Что возвращает функция Возвращает число между 0 и 23 (от 00:00 часов до 23:59), в…

Как использовать функцию DAY (ДЕНЬ) в Excel?

Функция DAY (ДЕНЬ) используется в Excel, для того чтобы узнать порядковый номер дня месяца (в промежутке от 1 до 31) из любой даты. Что функция возвращает Возвращает число…

Функции даты и времени в Excel

Чтобы ввести дату в Excel, используйте символы “/” или “-“. Чтобы ввести время, используйте “:” (двоеточие). Вы можете ввести дату и время в одной ячейке.

Примечание: На рисунках данной статьи представлены даты в формате США и ряда других стран, где сперва идут месяцы, а затем дни. Тип формата зависит от ваших региональных настроек Windows. Здесь вы можете получить дополнительную информацию о форматах даты и времени.

ГОД, МЕСЯЦ, ДЕНЬ

Чтобы получить год даты, используйте функцию ГОД (YEAR):

Примечание: Используйте функции МЕСЯЦ (MONTH) и ДЕНЬ (DAY), чтобы получить месяц и день даты.

Функция ДАТА

  1. Чтобы добавить несколько дней к дате, используйте следующую формулу:

Чтобы прибавить годы, месяцы и/или дни, используйте функцию ДАТА (DATE):

Примечание: Функция ДАТА (DATE) принимает три аргумента: год, месяц и день. Excel знает, что 6+2=8 – это август. Как известно в августе 31 день, поэтому программа переходит к следующему месяцу (23 августа + 9 дней = 1 сентября).

Текущая дата и время

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

Примечание: Используйте функцию СЕГОДНЯ (TODAY), чтобы получить только текущую дату. Чтобы получить только текущее время, используйте следующую формулу (не забудьте применить к ячейке формат времени):

ЧАС, МИНУТЫ, СЕКУНДЫ

Чтобы вернуть часы, используйте функцию ЧАС (HOUR):

Примечание: Используйте функции МИНУТЫ (MINUTE) и СЕКУНДЫ (SECOND), чтобы вернуть минуты и секунды соответственно.

Функция ВРЕМЯ

Чтобы прибавить часы, минуты и/или секунды, используйте функцию ВРЕМЯ (TIME):

Примечание: Excel прибавит 2 часа, 10+1 = 11 минут и 70-60 = 10 секунд.

Советы и лайфхаки по работе с Excel

Функция Описание
ВРЕМЗНАЧ Возвращает время в числовом формате для времени, заданного текстовой строкой.
ВРЕМЯ Возвращает десятичное число, представляющее определенное время.
ГОД Возвращает год, соответствующий заданной дате.
ДАТА Возвращает целое число, представляющее определенную дату.
ДАТАЗНАЧ Преобразует дату, которая хранится в виде текста, в порядковый номер, который Microsoft Excel воспринимает как дату.
ДАТАМЕС* Возвращает порядковый номер даты, отстоящей на заданное количество месяцев вперед или назад от заданной даты.
ДЕНЬ Возвращает день даты, заданной в числовом формате.
ДЕНЬНЕД Возвращает день недели, соответствующий дате.
ДНЕЙ360 Возвращает количество дней между двумя датами на основе 360-дневного года (двенадцать месяцев по 30 дней).
ДОЛЯГОДА* Возвращает долю года, которую составляет количество дней между двумя датами (начальной и конечной).
КОНМЕСЯЦА* Возвращает порядковый номер последнего дня месяца, отстоящего на указанное количество месяцев от даты, указанной в аргументе «нач_дата».
МЕСЯЦ Возвращает месяц для даты, заданной в числовом формате.
МИНУТЫ Возвращает минуты, соответствующие аргументу время_в_числовом_формате.
НОМНЕДЕЛИ* Возвращает номер недели для определенной даты.
РАБДЕНЬ* Возвращает число, которое представляет дату, отстоящую на заданное количество рабочих дней вперед или назад от начальной даты.
РАБДЕНЬ.МЕЖД Возвращает порядковый номер даты, отстоящей вперед или назад на заданное количество рабочих дней, с указанием настраиваемых параметров выходных, определяющих, сколько в неделе выходных дней и какие дни являются выходными.
РАЗНДАТ** Возвращает количество полных лет, месяцев или дней между двумя датами.
СЕГОДНЯ Возвращает текущую дату в числовом формате.
СЕКУНДЫ Возвращает секунды, соответствующие аргументу время_в_числовом_формате.
ТДАТА Возвращает текущую дату и время в числовом формате.
ЧАС Возвращает час, соответствующий заданному времени.
ЧИСТРАБДНИ* Возвращает количество рабочих дней между датами «нач_дата» и «кон_дата». Праздники и выходные в это число не включаются.

Как снять пароль в Excel? Три рабочих способа снятия пароля.

Способ 1. (Используем программу) Ищем в поисковике и загружаем программу

Как собрать несколько книг Excel в одну?

Например, мы имеем много рабочих книг Excel, и мы хотим

Что такое макрос и куда его вставлять в Excel?

Нам в работе иногда не хватает стандартных возможностей Эксель и приходится напрягать

Как добавить абзац в ячейке Excel?

Достаточно часто при заполнении ячейки текстом, возникает необходимость ввести текст

Как посчитать количество уникальных значений в колонке Excel?

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

Отсортировать уникальные значения в Excel

Предположим, что у нас есть такая таблица с перечнем соглашений,

Как сделать и добавить выпадающий список в Excel?

В Excel есть одна интересная особенность, а именно возможность вводить

Как быстро перейти в нужный лист книги Excel?

Многие сталкивались с файлами Ексель, в которых создано огромное количество

Функции даты и времени

Excel хранит дату в виде последовательных чисел (сериальных чисел), а время в виде десятичной части этого значения (время является частью даты). Значения даты и времени представляются числами, поэтому их можно использовать в вычислениях. Например, чтобы определить длительность промежутка времени, можно вычесть из конечного начальный момент времени. При использовании основного формата для ячеек, содержащих дату и время, можно отобразить дату в виде числа или время в виде дробной части числа с десятичной точкой.

Excel поддерживает две системы дат: 1900 и 1904. По умолчанию используется система дат 1900. Чтобы воспользоваться системой дат 1904, необходимо выбрать команду Параметры в меню Сервис, а затем на вкладке Вычисления установить опцию Система дат 1904.

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

Система дат Первая дата Последняя дата
1900 1 января 1900 г. (значение 1) 31 декабря 9999 г. (значение 2958465)
1904 2 января 1904 г. (значение 1) 31 декабря 9999 г. (значение 2957003)

Результат:
Числовой формат для времени суток, представленного аргументом врeмя_как_текст. Время сугок в числовом формате — это десятичная дробь в интервале от 0 до 0,99999999, представляющая время суток от 0:00:00 (12:00:00 ночи) до 23:59:59 (11:59:59 вечера). Функция ВРЕМЗНАЧ используется для преобразования времени суток, представленного в виде текста, в числовой формат времени суток.

время_как_текст- текстовая строка, содержащая значение времени суток в любом формате, допустимом в Excel. Информация о дате в аргументе время_как_текст игнорируется.

Значение времени в числовом формате, соответствующее введенным аргументам. Это десятичная дробь в интервале от 0 до 0,99999999, представляющая время суток от 0:00:00 (12:00:00 ночи) до 23:59:59 (11:59:59 вечера).

часы- число от 1 до 24 (количество часов);

минуты- число от 1 до 59 (количество минут); секунды число от 1 до 59 (количество секунд).

Результат:
Год, соответствующий заданному сериальному числу. Год определяется как целое в интервале от 1900 до 9999.

дата_в_числовом_формате- сериальное число. Данный аргумент можно задать как текст, например «19/Мар/1955», или «19-3-55». При этом текст автоматически преобразуется в дату в числовом формате.

Если в панели Вычисления диалогового окна Параметры установлена опция Система дат 1904, в качестве начала отсчета принимается 02/01/1904 вместо 01/01/1900.

Результат:
Сериальное число (от 0 до 2958456), соответствующее дате в числовом формате (в качестве начала отсчета принимается 01 января 1900 года).

год- число (год) от 1900 до 9999 (или от 0 до 8099 соответственно);

месяц- номер месяца в году (если значение аргумента больше 12, то это число делится на 12, частное прибавляется к указанному значению года, а остаток выступает в качестве номера месяца; так, функция ДАТА(98,14,2) возвращает числовой формат даты 2 февраля 1999 года);

день- номер дня в месяце (если аргумент- день больше числа дней в указанном месяце, то алгоритм вычислений аналогичен описанному для аргумента месяц’, так, функция ДАТА(99,1,35) возвращает числовой формат даты 4 февраля 1999 года).

См. функцию ГОД.

Результат:
Соответствующее дате сериальное число, представленное в текстовом виде, Функция ДАТАЗНАЧ используется для преобразования даты из текстового представления в числовой формат.

дата_как_текст- текст, содержащий дату в формате даты Excel. При использовании в Excel истемы дат, принятой по умолчанию для Windows 95/98, аргумент дата_как_текст должен представлять собой дату в диапазоне от 1 января 1900 года до 31 декабря 9999 года. При использовании в Excel системы дат, принятой по умолчанию для Macintosh, аргумент дата_как_текст должен представлять собой дату в диапазоне от 1 января 1904 года до 31 декабря 9999 года. Функция ДАТАЗНАЧ возвращает значение ошибки #ЗНАЧ!, если значение аргумента дата_как_текст выходит за пределы указанных диапазонов. Если в аргументе дата_как_текст опушен год, то функция ДАТАЗНАЧ использует значение текущего года из встроенных часов компьютера. Информация о времени суток в аргументе дата_ как_текст игнорируется.

См. функцию ГОД.

Результат:
Сериальное число для даты, отстоящей на заданное количество месяцев от начальной.

нач_дата- сериальное число, соответствующее начальной дате;

число_месяцев- количество месяцев (может быть положительным или отрицательным).

Результат:
Число месяца, соответствующее заданной дате (целое число от 1 до 31).

дата_в_числовом_формате- значение даты, заданное в виде сериального числа от 0 до 65380 или в виде текста в стандартных Excel-форматах, например «29/12/63» или «15-01-01». При этом текст будет автоматически преобразован в дату в числовом формате.

См. функцию ГОД.

Синтаксис:
ДEНЬНEД(дата в_числовом_формате, тип)

Результат:
День недели, соответствующий заданному сериальному числу. День недели определяется как целое в интервале от 1 (воскресенье) до 7 (суббота).

дата_в_числовом_форматe- сериальное число; этот аргумент можно задать как текст, например, как «15/Янв/1999», или «04-. . . , 15-99.», при этом текст автоматически преобразуется в значение даты в числовом формате;

тип- число, которое определяет тип возвращаемого значения. Этот аргумент может принимать следующие значения:

Значение Возвращаемое число аргумента 1 или опущен Число от 1 (воскресенье) до 7 (суббота) 2 Число от 1 (понедельник) до 7 (воскресенье) 3 Число от 0 (понедельник) до 6 (воскресенье)

Результат:
Количество дней между двумя датами на основе 360-дневного года (двенадцать 30-дневных месяцев). Эта функция используется для расчета платежей, если бухгалтерские операции основываются на двенадцати 30-дневных месяцах.

нач_дата, кон_цата- две даты, количество дней между которыми требуется определить (аргументы могут быть либо текстовыми строками, в которых используются цифры для задания месяца, дня и года (например «30/01/99» или «30-01-99»), либо датами в числовом формате; если аргумент нач_дата превосходит аргумент кон_дата, то функция ДНЕЙ360 возвращает отрицательное число); метод логическое значение, которое определяет, какой метод, европейский или американский, должен использоваться при вычислениях. Этот аргумент может принимать значения ЛОЖЬ (американский метод; принимается по умолчанию) или ИСТИНА (европейский метод).

Чтобы определить количество дней между двумя датами в нормальном году, следует использовать обычное вычитание. Например, «31/12/99» — «01/01/99» = 364.

Синтаксис:
ДОЛЯГОДА(нач_дата,кон_дата, базис)

Результат:
Часть года, соответствующая количеству дней от начальной даты до конечной (продолжительность года принимается за единицу).

нач_дата, кон_дата- сериальные числа для начальной и конечной дат;

базис- число от 0 (принимается по умолчанию; означает американский стандарт) до 5, определяющее режим расчета.

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

нач_дата- сериальное число, представляющее начальную дату;

число_месяцев- количество месяцев (может быть положительным или отрицательным) .

Результат:
Номер месяца, соответствующий заданному сериальному числу. Номер месяца определяется как целое число в интервале от 1 (январь) до 12 (декабрь).

дата_в_числовом_формате- сериальное число. Данный аргумент можно задать как текст, например «15-4-1999″ или»15-Янв-1999», а не как число. При этом текст автоматически преобразуется в дату в числовом формате. См. функцию ГОД.


Результат:
Количество минут (целое число от 0 до 59) в значении времени суток, соответствующем заданному сериальному числу.

дата_в_числовом_формате- сериальное число. Данный аргумент можно задать как текст, например «16:48:00» или «4:48:00 РМ», а не как число. При этом текст автоматически преобразуется в дату в числовом формате.

Результат:
Возвращает число, которое указывает, на какую неделю года приходится указанная дата. Если эта функция недоступна, то следует установить надстройку Пакет анализа.

дата_в_числовом_формате- дата в числовом формате;

тип- число, которое определяет первый день недели (1 — воскресенье, 2 — понедельник).

Результат:
Сериальное число для даты, отстоящей на заданное число рабочих дней от начальной даты.

нач_дата- начальная дата в виде сериального числа;

количество_дней- число дней;

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

Результат:
Сериальное число текущей даты.

Результат:
Количество секунд (целое число от 0 до 59) в значении времени, соответствующем заданному сериальному числу. Функция СЕКУНДЫ используется для того, чтобы получить значение количества секунд времени суток, заданного датой в числовом формате.

дата_в_числовом_формате- сериальное число. Этот аргумент можно задать как текст, например «16:48:23» или «4:48:47 РМ», а не как число. При этом текст автоматически преобразуется в дату в числовом формате.

Результат:
Сериальное число, соответствующее текущему времени суток и текущей дате (внутренних часов операционной системы).

См. также функцию ГОД; результат функции актуализируется только при новом вычислении таблицы.

Результат:
Количество часов, соответствующее заданному сериальному числу. Определяется как целое в интервале от 0 (12:00 AM) до 23 (11:00 РМ).

дата_в_числовом_формате- сериальное число. Данный аргумент можно задать как текст, например «16:48:00» или «4:48:00 РМ». При этом текст будет автоматически преобразован в дату в числовом формате.

Результат:
Количество рабочих дней между двумя датами.

нач_дата, кон_дата- сериальные числа для начальной и конечной дат;

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

Функции даты и времени

Функция DATEDIF (РАЗНДАТ) в Excel. Как использовать?

Функция DATEDIF (РАЗНДАТ) в Excel используется для подсчета количества лет, месяцев или дней между двумя датами. Хороший пример – подсчет возраста. Что возвращает функция Число, обозначающее количество лет/месяцев/дней…

Функция WEEKDAY (ДЕНЬНЕД) в Excel. Как использовать?

Функция WEEKDAY (ДЕНЬНЕД) в Excel используется для вычисления порядкового номера дня недели (от 1 до 7). Что возвращает функция Число от “1” до “7” в зависимости от даты, из…

Функция TODAY (СЕГОДНЯ) в Excel. Как использовать?

Функция TODAY (СЕГОДНЯ) в Excel используется для получения текущей даты. Она полезна когда расчеты в таблице, и её значения, зависят от даты на момент открытия файла. Также, функция может быть…

Функция WORKDAY (РАБДЕНЬ) в Excel. Как использовать?

Функция WORKDAY (РАБДЕНЬ) в Excel используется для вычисления даты завершения проектов/работ. Например, если сегодня я начну проект, и для его завершения потребуется 20 рабочих дней, я могу с…

Функция SECOND (СЕКУНДЫ) в Excel. Как использовать?

Функция SECOND (СЕКУНДЫ) в Excel используется для вычисления значения секунд из какой-либо даты. Что возвращает функция Возвращает число от “0” до “59”, в зависимости от даты, из которой…

Функция NOW (ТДАТА) в Excel. Как использовать?

Функция NOW (ТДАТА) используется в Excel для получения данных текущей даты и времени. Чаще всего, её применяют когда необходимо обновлять данные таблицы на дату и время открытия файла,…

Функция NETWORKDAYS (ЧИСТРАБДНИ) в Excel – Как использовать?

Функция NETWORKDAYS (ЧИСТРАБДНИ) в Excel используется для вычисления количества рабочих дней между двумя датами. Расчет происходит за исключением выходных дней между указанными датами (по умолчанию суббота и воскресенье считаются выходными…

Как использовать функцию MINUTE (МИНУТЫ) в Excel

Функцию MINUTE (МИНУТЫ) в Excel следует использовать, если вы хотите получить значение минут из любых данных времени. Что возвращает функция Возвращает числа в промежутке между “0” и “59” (в…

Как использовать функцию HOUR (ЧАС) в Excel

Функция HOUR (ЧАС) в Excel используется для вычисления значения часа из какого-либо значения времени. Что возвращает функция Возвращает число между 0 и 23 (от 00:00 часов до 23:59), в…

Как использовать функцию DAY (ДЕНЬ) в Excel?

Функция DAY (ДЕНЬ) используется в Excel, для того чтобы узнать порядковый номер дня месяца (в промежутке от 1 до 31) из любой даты. Что функция возвращает Возвращает число…

Функции даты и времени

Все существующие функции для обработки даты/времени перечислены в Таблице 9.30, а подробнее они описаны в следующих подразделах. Поведение основных арифметических операторов ( + , * и т. д.) описано в Таблице 9.29. Функции форматирования этих типов данных были перечислены в Разделе 9.8. Общую информацию об этих типах вы получили (или можете получить) в Разделе 8.5.

Все описанные ниже функции и операторы принимают две разновидности типов time или timestamp : с часовым поясом ( time with time zone и timestamp with time zone ) и без него ( time without time zone и timestamp without time zone ). Для краткости здесь они рассматриваются вместе. Кроме того, операторы + и * обладают переместительным свойством (например, date + integer = integer + date); здесь будет приведён только один вариант для каждой пары.

Таблица 9.29. Операторы даты/времени

Оператор Пример Результат
+ date ‘2001-09-28’ + integer ‘7’ date ‘2001-10-05’
+ date ‘2001-09-28’ + interval ‘1 hour’ timestamp ‘2001-09-28 01:00:00’
+ date ‘2001-09-28′ + time ’03:00’ timestamp ‘2001-09-28 03:00:00’
+ interval ‘1 day’ + interval ‘1 hour’ interval ‘1 day 01:00:00’
+ timestamp ‘2001-09-28 01:00′ + interval ’23 hours’ timestamp ‘2001-09-29 00:00:00’
+ time ’01:00′ + interval ‘3 hours’ time ’04:00:00′
— interval ’23 hours’ interval ‘-23:00:00’
date ‘2001-10-01’ — date ‘2001-09-28’ integer ‘3’ (дня)
date ‘2001-10-01’ — integer ‘7’ date ‘2001-09-24’
date ‘2001-09-28’ — interval ‘1 hour’ timestamp ‘2001-09-27 23:00:00’
time ’05:00′ — time ’03:00′ interval ’02:00:00′
time ’05:00′ — interval ‘2 hours’ time ’03:00:00′
timestamp ‘2001-09-28 23:00′ — interval ’23 hours’ timestamp ‘2001-09-28 00:00:00’
interval ‘1 day’ — interval ‘1 hour’ interval ‘1 day -01:00:00’
timestamp ‘2001-09-29 03:00’ — timestamp ‘2001-09-27 12:00’ interval ‘1 day 15:00:00’
* 900 * interval ‘1 second’ interval ’00:15:00′
* 21 * interval ‘1 day’ interval ’21 days’
* double precision ‘3.5’ * interval ‘1 hour’ interval ’03:30:00′
/ interval ‘1 hour’ / double precision ‘1.5’ interval ’00:40:00′

Таблица 9.30. Функции даты/времени

Функция Тип результата Описание Пример Результат
age( timestamp , timestamp ) interval Вычитает аргументы и выдаёт « символический » результат с годами и месяцами, а не просто днями age(timestamp ‘2001-04-10’, timestamp ‘1957-06-13’) 43 years 9 mons 27 days (43 года 9 месяцев 27 дней)
age( timestamp ) interval Вычитает дату/время из current_date (полночь текущего дня) age(timestamp ‘1957-06-13’) 43 years 8 mons 3 days (43 года 8 месяцев 3 дня)
clock_timestamp() timestamp with time zone Текущая дата и время (меняется в процессе выполнения операторов); см. Подраздел 9.9.4
current_date date Текущая дата; см. Подраздел 9.9.4
current_time time with time zone Текущее время суток; см. Подраздел 9.9.4
current_timestamp timestamp with time zone Текущая дата и время (на момент начала транзакции); см. Подраздел 9.9.4
date_part( text , timestamp ) double precision Возвращает поле даты (равнозначно extract ); см. Подраздел 9.9.1 date_part(‘hour’, timestamp ‘2001-02-16 20:38:40’) 20
date_part( text , interval ) double precision Возвращает поле даты (равнозначно extract ); см. Подраздел 9.9.1 date_part(‘month’, interval ‘2 years 3 months’) 3
date_trunc( text , timestamp ) timestamp Отсекает компоненты даты до заданной точности; см. также Подраздел 9.9.2 date_trunc(‘hour’, timestamp ‘2001-02-16 20:38:40’) 2001-02-16 20:00:00
date_trunc( text , interval ) interval Отсекает компоненты даты до заданной точности; см. также Подраздел 9.9.2 date_trunc(‘hour’, interval ‘2 days 3 hours 40 minutes’) 2 days 03:00:00
extract ( field from timestamp ) double precision Возвращает поле даты; см. Подраздел 9.9.1 extract(hour from timestamp ‘2001-02-16 20:38:40’) 20
extract ( field from interval ) double precision Возвращает поле даты; см. Подраздел 9.9.1 extract(month from interval ‘2 years 3 months’) 3
isfinite( date ) boolean Проверяет конечность даты (её отличие от +/-бесконечности) isfinite(date ‘2001-02-16’) true
isfinite( timestamp ) boolean Проверяет конечность времени (его отличие от +/-бесконечности) isfinite(timestamp ‘2001-02-16 21:28:30’) true
isfinite( interval ) boolean Проверяет конечность интервала isfinite(interval ‘4 hours’) true
justify_days( interval ) interval Преобразует интервал так, что каждый 30-дневный период считается одним месяцем justify_days(interval ’35 days’) 1 mon 5 days (1 месяц 5 дней)
justify_hours( interval ) interval Преобразует интервал так, что каждый 24-часовой период считается одним днём justify_hours(interval ’27 hours’) 1 day 03:00:00 (1 день 03:00:00)
justify_interval( interval ) interval Преобразует интервал с применением justify_days и justify_hours и дополнительно корректирует знаки justify_interval(interval ‘1 mon -1 hour’) 29 days 23:00:00 (29 дней 23:00:00)
localtime time Текущее время суток; см. Подраздел 9.9.4
localtimestamp timestamp Текущая дата и время (на момент начала транзакции); см. Подраздел 9.9.4
make_date( year int , month int , day int ) date Образует дату из полей: year (год), month (месяц) и day (день) make_date(2013, 7, 15) 2013-07-15
make_interval( years int DEFAULT 0, months int DEFAULT 0, weeks int DEFAULT 0, days int DEFAULT 0, hours int DEFAULT 0, mins int DEFAULT 0, secs double precision DEFAULT 0.0) interval Образует интервал из полей: years (годы), months (месяцы), weeks (недели), days (дни), hours (часы), minutes (минуты) и secs (секунды) make_interval(days => 10) 10 days
make_time( hour int , min int , sec double precision ) time Образует время из полей: hour (час), minute (минута) и sec (секунда) make_time(8, 15, 23.5) 08:15:23.5
make_timestamp( year int , month int , day int , hour int , min int , sec double precision ) timestamp Образует дату и время из полей: year (год), month (месяц), day (день), hour (час), minute (минута) и sec (секунда) make_timestamp(2013, 7, 15, 8, 15, 23.5) 2013-07-15 08:15:23.5
make_timestamptz( year int , month int , day int , hour int , min int , sec double precision , [ timezone text ]) timestamp with time zone Образует дату и время с часовым поясом из полей: year (год), month (месяц), day (день), hour (час), minute (минута) и sec (секунда). Если параметр timezone (часовой пояс) не указан, используется текущий часовой пояс. make_timestamptz(2013, 7, 15, 8, 15, 23.5) 2013-07-15 08:15:23.5+01
now() timestamp with time zone Текущая дата и время (на момент начала транзакции); см. Подраздел 9.9.4
statement_timestamp() timestamp with time zone Текущая дата и время (на момент начала текущего оператора); см. Подраздел 9.9.4
timeofday() text Текущая дата и время (как clock_timestamp , но в виде строки типа text ); см. Подраздел 9.9.4
transaction_timestamp() timestamp with time zone Текущая дата и время (на момент начала транзакции); см. Подраздел 9.9.4
to_timestamp( double precision ) timestamp with time zone Преобразует время эпохи Unix (число секунд с 1970-01-01 00:00:00+00) в стандартное время to_timestamp(1284352323) 2010-09-13 04:32:03+00

В дополнение к этим функциям поддерживается SQL-оператор OVERLAPS :

Его результатом будет true, когда два периода времени (определённые своими границами) пересекаются, и false в противном случае. Границы периода можно задать либо в виде пары дат, времени или дат со временем, либо как дату, время (или дату со временем) c интервалом. Когда указывается пара значений, первым может быть и начало, и конец периода: OVERLAPS автоматически считает началом периода меньшее значение. Периоды времени считаются наполовину открытыми, т. е. начало время конец , если только начало и конец не равны — в этом случае период представляет один момент времени. Это означает, например, что два периода, имеющие только общую границу, не будут считаться пересекающимися.

При добавлении к дате со временем типа timestamp with time zone значения interval (или при вычитании из него interval ), поле дней в этой дате увеличивается (или уменьшается) на указанное число дней. При пересечении границы перехода на летнее время (если в часовом поясе текущего сеанса производится этот переход) это означает, что interval ‘1 day’ и interval ’24 hours’ не обязательно будут равны. Например, в часовом поясе CST7CDT результатом выражения timestamp with time zone ‘2005-04-02 12:00-07’ + interval ‘1 day’ будет timestamp with time zone ‘2005-04-03 12:00-06′ , тогда как, если добавить interval ’24 hours’ к тому же значению timestamp with time zone , в результате получится timestamp with time zone ‘2005-04-03 13:00-06’ . Эта разница объясняется тем, что 2005-04-03 02:00 в часовом поясе CST7CDT произошёл переход на летнее время.

Обратите внимание на возможную неоднозначность в поле months в результате функции age , вызванную тем, что число дней в разных месяцах неодинаково. Вычисляя оставшиеся дни месяца, Postgres Pro рассматривает месяц меньшей из двух дат. Например, результатом age(‘2004-06-01’, ‘2004-04-30’) будет 1 mon 1 day , так как в апреле 30 дней, а то же выражение с датой 30 мая выдаст 1 mon 2 days , так как в мае 31 день.

Вычитание дат и дат со временем также может быть нетривиальной операцией. Один принципиально простой способ выполнить такое вычисление — преобразовать каждое значение в количество секунд, используя EXTRACT(EPOCH FROM . ) , а затем найти разницу результатов; при этом будет получено число секунд между двумя датами. При этом будет учтено неодинаковое число дней в месяцах, изменения часовых поясов и переходы на летнее время. При вычитании дат или дат со временем с помощью оператора « — » выдаётся число дней (по 24 часа) и часов/минут/секунд между данными значениями, с учётом тех же факторов. Функция age возвращает число лет, месяцев, дней и часов/минут/секунд, выполняя вычитание по полям, а затем пересчитывая отрицательные значения. Различие этих подходов иллюстрируют следующие запросы. Показанные результаты были получены для часового пояса ‘US/Eastern’ ; между двумя заданными датами произошёл переход на летнее время:

9.9.1. EXTRACT , date_part

Функция extract получает из значений даты/времени поля, такие как год или час. Здесь источник — значение типа timestamp , time или interval . (Выражения типа date приводятся к типу timestamp , так что допускается и этот тип.) Указанное поле представляет собой идентификатор, по которому из источника выбирается заданное поле. Функция extract возвращает значения типа double precision . Допустимые поля:

Первый век начался 0001-01-01 00:00:00, хотя люди в то время и не считали так. Это определение распространяется на все страны с григорианским календарём. Века с номером 0 нет было; считается, что 1 наступил после -1. Если такое положение вещей вас не устраивает, направляйте жалобы по адресу: Ватикан, Собор Святого Петра, Папе. day

Для значений timestamp это день месяца (1 — 31), для значений interval — число дней decade

Год, делённый на 10 dow

День недели, считая с воскресенья ( 0 ) до субботы ( 6 )

Заметьте, что в extract дни недели нумеруются не так, как в функции to_char(. ‘D’) . doy

День года (1 — 365/366) epoch

Для значений timestamp with time zone это число секунд с 1970-01-01 00:00:00 UTC (может быть отрицательным); для значений date и timestamp это число секунд с 1970-01-01 00:00:00 по местному времени, а для interval — общая длительность интервала в секундах

Преобразовать время эпохи назад, в значение дата/время, с помощью to_timestamp можно так: hour

Час (0 — 23) isodow

День недели, считая с понедельника ( 1 ) до воскресенья ( 7 )

Результат отличается от dow только для воскресенья. Такая нумерация соответствует ISO 8601. isoyear

Этого поля не было в PostgreSQL до версии 8.3. microseconds

Значение секунд с дробной частью, умноженное на 1 000 000; заметьте, что оно включает и целые секунды millennium

Годы 20 века относятся ко второму тысячелетию. Третье тысячелетие началось 1 января 2001 г. milliseconds

Значение секунд с дробной частью, умноженное на 1 000; заметьте, что оно включает и целые секунды. minute

Минуты (0 — 59) month

Для значений timestamp это номер месяца в году (1 — 12), а для interval — остаток от деления числа месяцев на 12 (в интервале 0 — 11) quarter

Квартал года (1 — 4), к которому относится дата second

Секунды, включая дробную часть (0 — 59 [7] ) timezone

Смещение часового пояса от UTC, представленное в секундах. Положительные значения соответствуют часовым поясам к востоку от UTC, а отрицательные — к западу. (Строго говоря, в Postgres Pro используется не UTC, так как секунды координации не учитываются.) timezone_hour

Поле часов в смещении часового пояса timezone_minute

Поле минут в смещении часового пояса week

В системе нумерации недель ISO первые числа января могут относиться к 52-ой или 53-ей неделе предыдущего года, а последние числа декабря — к первой неделе следующего года. Например, 2005-01-01 относится к 53-ей неделе 2004 г., а 2006-01-01 — к 52-ей неделе 2005 г., тогда как 2012-12-31 включается в первую неделю 2013 г. Поэтому для получения согласованных результатов рекомендуется использовать поле isoyear в паре с week . year

Поле года. Учтите, что года 0 не было, и это следует иметь в виду, вычитая из годов нашей эры годы до нашей эры.

Примечание

С аргументом +/-бесконечность extract возвращает +/-бесконечность для монотонно увеличивающихся полей ( epoch , julian , year , isoyear , decade , century и millennium ). Для других полей возвращается NULL. До версии 9.6 Postgres Pro возвращал ноль для всех случаев с бесконечными аргументами.

Функция extract в основном предназначена для вычислительных целей. Функции форматирования даты/времени описаны в Разделе 9.8.

Функция date_part эмулирует традиционный для Ingres эквивалент стандартной SQL -функции extract :

Заметьте, что здесь параметр поле должен быть строковым значением, а не именем. Функция date_part воспринимает те же поля, что и extract .

9.9.2. date_trunc

Функция date_trunc работает подобно trunc для чисел.

Здесь значение — это выражение типа timestamp или interval . (Значения типов date и time автоматически приводятся к типам timestamp и interval , соответственно.) Параметр поле определяет, до какой точности обрезать переданное значение. Возвращаемое значение будет иметь тип timestamp или interval и все его значения, менее значимые, чем заданное поле, будут равны нулю (или единице, если это номер дня или месяца).

Параметр поле может принимать следующие значения:

microseconds
milliseconds
second
minute
hour
day
week
month
quarter
year
decade
century
millennium

9.9.3. AT TIME ZONE

Указание AT TIME ZONE позволяет переводить дату/время без часового пояса в дату/время с часовым поясом и обратно, а также пересчитывать значения времени для различных часовых поясов. Все разновидности этого указания проиллюстрированы в Таблице 9.31.

Таблица 9.31. Разновидности AT TIME ZONE

Выражение Тип результата Описание
timestamp without time zone AT TIME ZONE часовой_пояс timestamp with time zone Воспринимает заданное время без указания часового пояса как время в указанном часовом поясе
timestamp with time zone AT TIME ZONE часовой_пояс timestamp without time zone Переводит данное значение timestamp с часовым поясом в другой часовой пояс, но не сохраняет информацию о нём в результате
time with time zone AT TIME ZONE часовой_пояс time with time zone Переводит данное время с часовым поясом в другой часовой пояс

В этих выражениях желаемый часовой_пояс можно задать либо в виде текстовой строки (например, ‘America/Los_Angeles’ ), либо как интервал (например, INTERVAL ‘-08:00’ ). В первом случае название часового пояса можно указать любым из способов, описанных в Подразделе 8.5.3.

Примеры (в предположении, что местный часовой пояс America/Los_Angeles ):

В первом примере для значения, заданного без часового пояса, указывается часовой пояс и полученное время выводится в текущем часовом поясе (заданном параметром TimeZone ). Во втором примере значение времени смещается в заданный часовой пояс и выдаётся без указания часового пояса. Этот вариант позволяет хранить и выводить значения с часовым поясом, отличным от текущего. В третьем примере время в часовом поясе Токио пересчитывается для часового пояса Чикаго. При переводе значений времени без даты в другие часовые пояса используются определения часовых поясов, действующие в данный момент.

Функция timezone ( часовой_пояс , время ) равнозначна SQL-совместимой конструкции время AT TIME ZONE часовой_пояс .

9.9.4. Текущая дата/время

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

CURRENT_TIME и CURRENT_TIMESTAMP возвращают время с часовым поясом. В результатах LOCALTIME и LOCALTIMESTAMP нет информации о часовом поясе.

CURRENT_TIME , CURRENT_TIMESTAMP , LOCALTIME и LOCALTIMESTAMP могут принимать необязательный параметр точности, определяющий, до какого знака после запятой следует округлять поле секунд. Если этот параметр отсутствует, результат будет иметь максимально возможную точность.

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

Примечание

В других СУБД эти значения могут изменяться чаще.

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

Функция transaction_timestamp() равнозначна конструкции CURRENT_TIMESTAMP , но в её названии явно отражено, что она возвращает. Функция statement_timestamp() возвращает время начала текущего оператора (более точно, время получения последнего командного сообщения от клиента). Функции statement_timestamp() и transaction_timestamp() возвращают одно и то же значение в первой команде транзакции, но в последующих их показания будут расходиться. Функция clock_timestamp() возвращает фактическое текущее время, так что её значение меняется в рамках одной команды SQL. Функция timeofday() существует в Postgres Pro по историческим причинам и, подобно clock_timestamp() , она возвращает фактическое текущее время, но представленное в виде форматированной строки типа text , а не значения timestamp with time zone . Функция now() — традиционный для Postgres Pro эквивалент функции transaction_timestamp() .

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

Подсказка

Третья форма не подходит для указания в качестве значения DEFAULT при создании таблицы. Система преобразует now в значение timestamp в момент разбора константы, поэтому, когда будет вставляться значение по умолчанию, в соответствующем столбце окажется время создания таблицы! Первые две формы не будут вычисляться, пока не потребуется значение по умолчанию, так как это вызовы функции. Поэтому они дадут желаемый результат при добавлении строки в таблицу.

9.9.5. Задержка выполнения

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

Функция pg_sleep переводит процесс текущего сеанса в спящее состояние на указанное число секунд ( сек ). Параметр сек имеет тип double precision , так что в нём можно указать и дробное число. Функция pg_sleep_for введена для удобства, ей можно передать большие значения задержки в типе interval . А pg_sleep_until удобнее использовать, когда необходимо задать определённое время выхода из спящего состояния. Например:

Примечание

Действительное разрешение интервала задержки зависит от платформы; обычно это 0.01. Фактическая длительность задержки не будет меньше указанного времени, но может быть больше, в зависимости, например от нагрузки на сервер. В частности, не гарантируется, что pg_sleep_until проснётся именно в указанное время, но она точно не проснётся раньше.

Предупреждение

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

[7] 60, если операционная система поддерживает секунды координации

Илон Маск рекомендует:  Что такое код asp notifysendrawdata
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL