Класс timedelta() модуля datetime в python
Содержание:
Модуль time
Модуль основан на «эпохе Unix», которая началась 1 января 1970 года:
>>> import time >>> print(time.gmtime(0)) time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
Функция возвращает время в секундах по Гринвичу, начиная с эпохи Unix, как число с плавающей запятой:
>>> time.time() 1524561056.103065
Функция преобразует время, выраженное в секундах с начала эпохи Unix, в строку вида «Tue Apr 24 10:36:06 2018»:
>>> print(time.ctime()) Tue Apr 24 10:36:06 2018
Функция возвращает время по Гринвичу как объект
>>> time.gmtime() time.struct_time(tm_year=2018, tm_mon=4, tm_mday=24, tm_hour=9, tm_min=6, tm_sec=29, tm_wday=1, tm_yday=114, tm_isdst=0)
Функция возвращает местное время (с учетом часового пояса) как объект
>>> time.localtime() time.struct_time(tm_year=2018, tm_mon=4, tm_mday=24, tm_hour=12, tm_min=6, tm_sec=51, tm_wday=1, tm_yday=114, tm_isdst=0)
Свойство показывает смещение часового пояса в секундах к западу от нулевого меридиана. Если часовой пояс находится восточнее, смещение отрицательно:
>>> time.altzone -14400
Функция приостановливает выполнение скрипта на определенное количество секунд.
Свойства и методы класса
- — смещение часового пояса в секундах от нулевого меридиана.
- — возвращает текущее время в секундах по Гринвичу, прошедшее с начала эпохи Unix.
- — возвращает строкове представление переданной либо текущей даты.
- — возвращает строковое представление текущего местного времени.
- — возвращает объект , текущего или переданного времени по Гринвичу.
- — возвращает объект , текущего или переданного времени. Представляющий местное время с начала эпохи Unix.
- — преобразует кортеж или объект во время в секундах.
- — приостановить выполнение программы на заданное количество секунд.
- — преобразует кортеж или в строку по формату.
Getting the current datetime object
Now, for most real life programs, we would want to use the current time and store it as a datetime object.
We can use datetime.now() function to display the current time as a datetime object!
Note that you have to import this from the module name separately!
from datetime import datetime
Let’s now take an example.
from datetime import datetime current_datetime = datetime.now() print(current_datetime)
Output
datetime.datetime(2020, 6, 27, 22, 45, 54, 267673)
The output seems to match! It says that the current time is June 27 2020, 22:45:54 in my local timezone (IST).
Now, we can also use basic operators to get the past or future time!
from datetime import datetime, timedelta current_datetime = datetime.now() # future dates one_year_future_date = current_datetime + timedelta(days=365) print('Current Date:', current_datetime) print('One year from now Date:', one_year_future_date) # past dates three_days_before_date = current_datetime - timedelta(days=3) print('Three days before Date:', three_days_before_date)
Output
Current Date: 2020-06-27 22:45:54.267673 One year from now Date: 2021-06-27 22:45:54.267673 Three days before Date: 2020-06-24 22:45:54.267673
datetime.datetime
Объект datetime.datetime содержит всю информацию объектов datetime.date плюс datetime.time. Давайте приведем несколько примеров, для лучшего понимания разницы между этим объектом, и объектом datetime.date.
Python
import datetime
a = datetime.datetime(2017, 3, 5)
print(a) # datetime.datetime(2017, 3, 5, 0, 0)
b = datetime.datetime(2017, 3, 5, 12, 30, 10)
print(b) # datetime.datetime(2017, 3, 5, 12, 30, 10)
d = datetime.datetime(2017, 3, 5, 12, 30, 10)
print(d.year) # 2017
print(d.second) # 10
print(d.hour) # 12
1 2 3 4 5 6 7 8 9 10 11 12 |
importdatetime a=datetime.datetime(2017,3,5) print(a)# datetime.datetime(2017, 3, 5, 0, 0) b=datetime.datetime(2017,3,5,12,30,10) print(b)# datetime.datetime(2017, 3, 5, 12, 30, 10) d=datetime.datetime(2017,3,5,12,30,10) print(d.year)# 2017 print(d.second)# 10 print(d.hour)# 12 |
Мы видим, что datetime.datetime принимает несколько дополнительных аргументов: год, месяц, день, час, минута и секунда. Это также позволяет вам указывать информацию о микросекундах и часовом поясе. При работе с базами данных, данные типы объектов будут использоваться достаточно часто. Большую часть вашей работы, вам нужно будет конвертировать форматы date или datetime Python в форматы SQL datetime или timestamp
Обратите внимание на то, что today совместно с datetime.datetime использует два разных метода:
Python
import datetime
a = datetime.datetime.today()
print(a) # datetime.datetime(2017, 4, 5, 0, 16, 54, 989663)
b = datetime.datetime.now()
print(b) # datetime.datetime(2017, 4, 5, 0, 17, 8, 24239)
1 2 3 4 5 6 7 |
importdatetime a=datetime.datetime.today() print(a)# datetime.datetime(2017, 4, 5, 0, 16, 54, 989663) b=datetime.datetime.now() print(b)# datetime.datetime(2017, 4, 5, 0, 17, 8, 24239) |
Модуль datetime содержит другой метод, под названием strftime. Этот метод позволяет разработчику создавать строку, отображающую время в более понятной для человека форме. Существует целая таблица параметров форматирования, с которой рекомендуется ознакомиться в документации Python, в . Давайте взглянем на несколько примеров, показывающих всю полезность данного метода:
Python
import datetime
a = datetime.datetime.today().strftime(«%Y%m%d»)
print(a) # ‘20170405’
today = datetime.datetime.today()
print( today.strftime(«%m/%d/%Y») ) # ’04/05/2017′
print( today.strftime(«%Y-%m-%d-%H.%M.%S») ) # 2017-04-05-00.18.00
1 2 3 4 5 6 7 8 9 |
importdatetime a=datetime.datetime.today().strftime(«%Y%m%d») print(a)# ‘20170405’ today=datetime.datetime.today() print(today.strftime(«%m/%d/%Y»))# ’04/05/2017′ print(today.strftime(«%Y-%m-%d-%H.%M.%S»))# 2017-04-05-00.18.00 |
Первый пример – это скорее хитрость. В нем показано, как конвертировать сегодняшний объект datetime в строку, следующую за форматом YYYYMMDD (ГГГГММДД). Второй пример более наглядный.
В нем мы присваиваем объект datetime переменной под названием today и применяем два разных параметра форматирования строки. Первый параметр добавляет косые черточки между элементами datetime, а также перегруппировывает datetime, теперь он делится на месяц, день и год. В последнем примере мы создаем временную отметку, которая следует типичному формату: YYYY-MM-DD.HH.MM.SS. Если вам нужно указать год как двухзначный (“YY”), вы можете заменить %Y на %y.
Структура DateTime
Последнее обновление: 18.08.2016
Для работы с датами и временем в .NET предназначена структура DateTime. Она представляет дату и время от 00:00:00 1 января 0001 года
до 23:59:59 31 декабря 9999 года.
Для создания нового объекта DateTime также можно использовать конструктор. Пустой конструктор создает начальную дату:
DateTime date1 = new DateTime(); Console.WriteLine(date1); // 01.01.0001 0:00:00
То есть мы получим минимально возможное значение, которое также можно получить следующим образом:
Console.WriteLine(DateTime.MinValue);
Чтобы задать конкретную дату, нужно использовать один из конструкторов, принимающих параметры:
DateTime date1 = new DateTime(2015, 7, 20); // год - месяц - день Console.WriteLine(date1); // 20.07.2015 0:00:00
Установка времени:
DateTime date1 = new DateTime(2015, 7, 20, 18, 30, 25); // год - месяц - день - час - минута - секунда Console.WriteLine(date1); // 20.07.2015 18:30:25
Если необходимо получить текущую время и дату, то можно использовать ряд свойств DateTime:
Console.WriteLine(DateTime.Now); Console.WriteLine(DateTime.UtcNow); Console.WriteLine(DateTime.Today);
Консольный вывод:
20.07.2015 11:43:33 20.07.2015 8:43:33 20.07.2015 0:00:00
Свойство берет текущую дату и время компьютера, — дата и время относительно времени по
Гринвичу (GMT) и — только текущая дата.
При работе с датами надо учитывать, что по умолчанию для представления дат применяется григорианский календарь. Но что будет, если мы захотим получить день недели для
5 октября 1582 года:
DateTime someDate = new DateTime(1582, 10, 5); Console.WriteLine(someDate.DayOfWeek);
Консоль выстветит значение Tuesday, то есть вторник. Однако, как может быть известно из истории, впервые переход с юлианского календаря на григорианский
состоялся в октябре 1582 года. Тогда после даты 4 октября (четверг) (еще по юлианскому календарю) сразу перешли к 15 октября (пятница)(уже по григорианскому календарю).
Таким образом, фактически выкинули 10 дней. То есть после 4 октября шло 15 октября.
В большинстве случаев данный факт вряд ли как-то повлияет на вычисления, однако при работе с очень давними датами данный аспект следует учитывать.
Операции с DateTime
Основные операции со структурой DateTime связаны со сложением или вычитанием дат. Например, надо к некоторой дате прибавить или, наоборот,
отнять несколько дней.
Для добавления дат используется ряд методов:
-
: добавляет к дате значение TimeSpan
-
: добавляет к текущей дате несколько дней
-
: добавляет к текущей дате несколько часов
-
: добавляет к текущей дате несколько минут
-
: добавляет к текущей дате несколько месяцев
-
: добавляет к текущей дате несколько лет
Например, добавим к некоторой дате 3 часа:
DateTime date1 = new DateTime(2015, 7, 20, 18, 30, 25); // 20.07.2015 18:30:25 Console.WriteLine(date1.AddHours(3)); // 20.07.2015 21:30:25
Для вычитания дат используется метод Substract(DateTime date):
DateTime date1 = new DateTime(2015, 7, 20, 18, 30, 25); // 20.07.2015 18:30:25 DateTime date2 = new DateTime(2015, 7, 20, 15, 30, 25); // 20.07.2015 15:30:25 Console.WriteLine(date1.Subtract(date2)); // 03:00:00
Здесь даты различаются на три часа, поэтому результатом будет дата «03:00:00».
Метод Substract не имеет возможностей для отдельного вычитания дней, часов и так далее. Но это и не надо, так как мы можем передавать в метод
AddDays() и другие методы добавления отрицательные значения:
// вычтем три часа DateTime date1 = new DateTime(2015, 7, 20, 18, 30, 25); // 20.07.2015 18:30:25 Console.WriteLine(date1.AddHours(-3)); // 20.07.2015 15:30:25
Кроме операций сложения и вычитания еще есть ряд методов форматирования дат:
DateTime date1 = new DateTime(2015, 7, 20, 18, 30, 25); Console.WriteLine(date1.ToLocalTime()); // 20.07.2015 21:30:25 Console.WriteLine(date1.ToUniversalTime()); // 20.07.2015 15:30:25 Console.WriteLine(date1.ToLongDateString()); // 20 июля 2015 г. Console.WriteLine(date1.ToShortDateString()); // 20.07.2015 Console.WriteLine(date1.ToLongTimeString()); // 18:30:25 Console.WriteLine(date1.ToShortTimeString()); // 18:30
Метод преобразует время UTC в локальное время, добавляя смещение относительно времени по Гринвичу.
Метод , наоборот, преобразует локальное время во время UTC, то есть вычитает смещение относительно времени по Гринвичу.
Остальные методы преобразуют дату к определенному формату.
НазадВперед
The strftime() Method
The object has a method for formatting date objects into readable strings.
The method is called , and takes one parameter,
, to specify the format of the returned string:
Example
Display the name of the month:
import datetimex = datetime.datetime(2018, 6, 1)print(x.strftime(«%B»))
A reference of all the legal format codes:
Directive | Description | Example | Try it |
---|---|---|---|
%a | Weekday, short version | Wed | Try it » |
%A | Weekday, full version | Wednesday | Try it » |
%w | Weekday as a number 0-6, 0 is Sunday | 3 | Try it » |
%d | Day of month 01-31 | 31 | Try it » |
%b | Month name, short version | Dec | Try it » |
%B | Month name, full version | December | Try it » |
%m | Month as a number 01-12 | 12 | Try it » |
%y | Year, short version, without century | 18 | Try it » |
%Y | Year, full version | 2018 | Try it » |
%H | Hour 00-23 | 17 | Try it » |
%I | Hour 00-12 | 05 | Try it » |
%p | AM/PM | PM | Try it » |
%M | Minute 00-59 | 41 | Try it » |
%S | Second 00-59 | 08 | Try it » |
%f | Microsecond 000000-999999 | 548513 | Try it » |
%z | UTC offset | +0100 | |
%Z | Timezone | CST | |
%j | Day number of year 001-366 | 365 | Try it » |
%U | Week number of year, Sunday as the first day of week, 00-53 | 52 | Try it » |
%W | Week number of year, Monday as the first day of week, 00-53 | 52 | Try it » |
%c | Local version of date and time | Mon Dec 31 17:41:00 2018 | Try it » |
%x | Local version of date | 12/31/18 | Try it » |
%X | Local version of time | 17:41:00 | Try it » |
%% | A % character | % | Try it » |
%G | ISO 8601 year | 2018 | Try it » |
%u | ISO 8601 weekday (1-7) | 1 | Try it » |
%V | ISO 8601 weeknumber (01-53) | 01 | Try it » |
❮ Previous
Next ❯
Комментарии
Время в формате UTC равно значению местного времени минус смещение в формате UTC.The Coordinated Universal Time (UTC) is equal to the local time minus the UTC offset. Дополнительные сведения о смещении UTC см. в разделе TimeZoneInfo.GetUtcOffset .For more information about the UTC offset, see TimeZoneInfo.GetUtcOffset. Кроме того, в процессе преобразования учитывается правило перехода на летнее время, которое применяется к времени, представленному текущим DateTime объектом.The conversion also takes into account the daylight saving time rule that applies to the time represented by the current DateTime object.
Важно!
В системах Windows XP ToUniversalTime метод распознает только текущее правило коррекции при преобразовании из местного времени в время в формате UTC.On Windows XP systems, the ToUniversalTime method recognizes only the current adjustment rule when converting from local time to UTC. В результате преобразования для периодов, предшествующих текущему правилу коррекции, могут не точно отражать разницу между местным временем и временем в формате UTC.As a result, conversions for periods before the current adjustment rule came into effect may not accurately reflect the difference between local time and UTC.
Начиная с версии платформа .NET Framework 2,0, значение, возвращаемое методом, ToUniversalTime определяется Kind свойством текущего DateTime объекта.Starting with the .NET Framework version 2.0, the value returned by the ToUniversalTime method is determined by the Kind property of the current DateTime object. В следующей таблице приводятся возможные результаты.The following table describes the possible results.
ВидKind | РезультатыResults |
---|---|
Преобразование не выполняется.No conversion is performed. | |
Текущий DateTime объект преобразуется в формат UTC.The current DateTime object is converted to UTC. | |
DateTimeПредполагается, что текущий объект является местным временем, а преобразование выполняется так, как будто Kind .The current DateTime object is assumed to be a local time, and the conversion is performed as if Kind were . |
Примечание
ToUniversalTimeМетод преобразует DateTime значение из местного времени в UTC.The ToUniversalTime method converts a DateTime value from local time to UTC. Чтобы преобразовать время в неместном часовом поясе в UTC, используйте метод.To convert the time in a non-local time zone to UTC, use the method. Чтобы преобразовать время, смещение которого известно от времени в формате UTC, используйте ToUniversalTime метод.To convert a time whose offset from UTC is known, use the ToUniversalTime method.
Если значение экземпляра даты и времени является неоднозначным, этот метод предполагает, что это стандартное время.If the date and time instance value is an ambiguous time, this method assumes that it is a standard time. (Неоднозначное время — это значение, которое может сопоставляться со стандартным временем или с переходом на летнее время в местном часовом поясе). Если значение экземпляра даты и времени является недопустимым, этот метод просто вычитает местное время из смещения UTC местного часового пояса, чтобы получить время в формате UTC.(An ambiguous time is one that can map either to a standard time or to a daylight saving time in the local time zone) If the date and time instance value is an invalid time, this method simply subtracts the local time from the local time zone’s UTC offset to return UTC. (Неверное время не существует из-за применения правил коррекции летнего времени.)(An invalid time is one that does not exist because of the application of daylight saving time adjustment rules.)
Programming With Dates and Times
If you’ve ever worked on software that needed to keep track of times across several geographic areas, then you probably have a sense of why programming with time can be such a pain. The fundamental disconnect is that computer programs prefer events that are perfectly ordered and regular, but the way in which most humans use and refer to time is highly irregular.
Note: If you want to learn more about why time can be so complicated to deal with, then there are many great resources available on the web. Here are a few good places to start:
- Computerphile: The Problem With Time & Timezones
- Working With Time Zones: Everything You Wish You Didn’t Need to Know
- The Complexity of Time Data Programming
One great example of this irregularity is daylight saving time. In the United States and Canada, clocks are set forward by one hour on the second Sunday in March and set back by one hour on the first Sunday in November. However, this has only been the case since 2007. Prior to 2007, clocks were set forward on the first Sunday in April and set back on the last Sunday in October.
Things get even more complicated when you consider time zones. Ideally, time zone boundaries would follow lines of longitude exactly. However, for historical and political reasons, time zone lines are rarely straight. Often, areas that are separated by large distances find themselves in the same time zone, and adjacent areas are in different time zones. There are some time zones out there with pretty funky shapes.
Операции с датами
Последнее обновление: 05.05.2017
Фоматирование дат и времени
Для форматирования объектов date и time в обоих этих классах предусмотрен метод strftime(format). Этот метод принимает только один
параметр, указывающий на формат, в который нужно преобразовать дату или время.
Для определения формата мы можем использовать один из следующих кодов форматирования:
-
%a: аббревиатура дня недели. Например, Wed — от слова Wednesday (по умолчанию используются английские наименования)
-
%A: день недели полностью, например, Wednesday
-
%b: аббревиатура названия месяца. Например, Oct (сокращение от October)
-
%B: название месяца полностью, например, October
-
%d: день месяца, дополненный нулем, например, 01
-
%m: номер месяца, дополненный нулем, например, 05
-
%y: год в виде 2-х чисел
-
%Y: год в виде 4-х чисел
-
%H: час в 24-х часовом формате, например, 13
-
%I: час в 12-ти часовом формате, например, 01
-
%M: минута
-
%S: секунда
-
%f: микросекунда
-
%p: указатель AM/PM
-
%c: дата и время, отформатированные под текущую локаль
-
%x: дата, отформатированная под текущую локаль
-
%X: время, форматированное под текущую локаль
Используем различные форматы:
from datetime import datetime now = datetime.now() print(now.strftime("%Y-%m-%d")) # 2017-05-03 print(now.strftime("%d/%m/%Y")) # 03/05/2017 print(now.strftime("%d/%m/%y")) # 03/05/17 print(now.strftime("%d %B %Y (%A)")) # 03 May 2017 (Wednesday) print(now.strftime("%d/%m/%y %I:%M")) # 03/05/17 01:36
При выводе названий месяцев и дней недели по умолчанию используются английские наименования. Если мы хотим использовать текущую локаль, но то мы
можем ее предварительно установить с помощью модуля locale:
from datetime import datetime import locale locale.setlocale(locale.LC_ALL, "") now = datetime.now() print(now.strftime("%d %B %Y (%A)")) # 03 Май 2017 (среда)
Сложение и вычитани дат и времени
Нередко при работе с датами возникает необходимость добавить к какой-либо дате определенный промежуток времени или, наоборот, вычесть некоторый период. И специально для
таких операций в модуле datetime определен класс timedelta. Фактически этот класс определяет некоторый период времени.
Для определения промежутка времени можно использовать конструктор timedelta:
timedelta( )
В конструктор мы последовательно передаем дни, секунды, микросекунды, миллисекунды, минуты, часы и недели.
Определим несколько периодов:
from datetime import timedelta three_hours = timedelta(hours=3) print(three_hours) # 3:00:00 three_hours_thirty_minutes = timedelta(hours=3, minutes=30) # 3:30:00 two_days = timedelta(2) # 2 days, 0:00:00 two_days_three_hours_thirty_minutes = timedelta(days=2, hours=3, minutes=30) # 2 days, 3:30:00
Используя timedelta, мы можем складывать или вычитать даты. Например, получим дату, которая будет через два дня:
from datetime import timedelta, datetime now = datetime.now() print(now) # 2017-05-03 17:46:44.558754 two_days = timedelta(2) in_two_days = now + two_days print(in_two_days) # 2017-05-05 17:46:44.558754
Или узнаем, сколько было времени 10 часов 15 минут назад, то есть фактически нам надо вычесть из текущего времени 10 часов и 15 минут:
from datetime import timedelta, datetime now = datetime.now() till_ten_hours_fifteen_minutes = now - timedelta(hours=10, minutes=15) print(till_ten_hours_fifteen_minutes)
Свойства timedelta
Класс timedelta имеет несколько свойств, с помощью которых мы можем получить временной промежуток:
-
days: возвращает количество дней
-
seconds: возвращает количество секунд
-
microseconds: возвращает количество микросекунд
Кроме того, метод total_seconds() возвращает общее количество секунд, куда входят и дни, и собственно секунды, и микросекунды.
Например, узнаем какой временной период между двумя датами:
from datetime import timedelta, datetime now = datetime.now() twenty_two_may = datetime(2017, 5, 22) period = twenty_two_may - now print("{} дней {} секунд {} микросекунд".format(period.days, period.seconds, period.microseconds)) # 18 дней 17537 секунд 72765 микросекунд print("Всего: {} секунд".format(period.total_seconds())) # Всего: 1572737.072765 секунд
Сравнение дат
Также как и строки и числа, даты можно сравнивать с помощью стандартных операторов сравнения:
from datetime import datetime now = datetime.now() deadline = datetime(2017, 5, 22) if now > deadline: print("Срок сдачи проекта прошел") elif now.day == deadline.day and now.month == deadline.month and now.year == deadline.year: print("Срок сдачи проекта сегодня") else: period = deadline - now print("Осталось {} дней".format(period.days))
НазадВперед
datetime.timedelta
A object represents the difference between two dates or times.
Example 11: Difference between two dates and times
When you run the program, the output will be:
t3 = 201 days, 0:00:00 t6 = -333 days, 1:14:20 type of t3 = <class 'datetime.timedelta'> type of t6 = <class 'datetime.timedelta'>
Notice, both t3 and t6 are of type.
Example 12: Difference between two timedelta objects
When you run the program, the output will be:
t3 = 14 days, 13:55:39
Here, we have created two objects t1 and t2, and their difference is printed on the screen.
When you run the program, the output will be:
t3 = -1 day, 23:59:39 t3 = 0:00:21
Example 14: Time duration in seconds
You can get the total number of seconds in a timedelta object using method.
When you run the program, the output will be:
total seconds = 435633.233423
You can also find sum of two dates and times using operator. Also, you can multiply and divide a object by integers and floats.
Поддерживаемые форматы строковых литералов для типа данных datetime
В представленных ниже таблицах приводятся поддерживаемые форматы строковых литералов для типа данных datetime. За исключением ODBC, строковые литералы типа datetime заключаются в одинарные кавычки (‘), например ‘string_literaL’. Если язык среды не us_english, строковые литералы должны иметь формат N’string_literaL’.
Числовой | Описание |
---|---|
Форматы даты 4/15/96 — (мдг) 4-15-96 — (мдг) 4.15.96 — (мдг) 4/96/15 — (мгд) 15/4/96 — (дмг) 15/96/4 — (дгм) 96/15/4 — (гдм) 96/4/15 — (гмд) Форматы времени 14:30 14:30 14:30 4am 16:00:00 | Месяц в датах может указываться в числовом формате. Например, 5/20/97 обозначает двадцатое мая 1997 года. Используя числовой формат дат, указывайте месяц, день и год в виде строки со знаками косой черты (/), дефисами (-) или точками (.) в качестве разделителей. Эта строчка должна выглядеть следующим образом:число разделитель число разделитель число При использовании языковой настройки us_english порядком по умолчанию для даты является mdy (МДГ). Порядок даты можно изменить с помощью инструкции SET DATEFORMAT. Установка для SET DATEFORMAT определяет, как будут интерпретированы значения дат. Если порядок не соответствует конфигурации, значения не обрабатываются как даты. Неупорядоченные даты могут неправильно интерпретироваться как даты за пределами диапазона или даты с неправильными значениями. Например, 12/10/08 может быть интерпретировано как одна из шести различных дат в зависимости от установки DATEFORMAT. Четырехзначный год интерпретируется как год. |
Алфавитный формат | Описание |
---|---|
Apr 1996 Apr 15 96 Apr 1996 Apr 1996 15 Apr96 15 96 apr 1996 apr 1996 APR 1996 APR | Можно указывать дату с полным именем месяца. Например, «апрель» или сокращение «Апр», заданное в текущем языке. Запятые не обязательны, регистр букв не учитывается. Некоторые рекомендации по применению алфавитных форматов даты: 1. Заключайте дату и время в одинарные кавычки (‘). Для всех языков, кроме английского, используйте «N’». 2. Символы, заключенные в квадратные скобки, являются необязательными. 3. Если указать две последние цифры года, значения, меньшие двух последних цифр значения параметра конфигурации сервера two digit year cutoff, будут относиться к столетию года усечения. Значения, большие или равные двум последним цифрам этого параметра, относятся к столетию, предшествующему столетию года усечения. Например, если значение параметра two digit year cutoff равно 2050 (по умолчанию), то год, обозначенный двумя цифрами 25, интерпретируется как 2025, а год, обозначенный двумя цифрами 50, — как 1950. Во избежание неоднозначности используйте четырехзначную запись года. 4. Если не указано число месяца, подразумевается первое число месяца. Параметр сеанса SET DATEFORMAT не применяется, если месяц указывается в алфавитном формате. |
ISO 8601 | Описание |
---|---|
ГГГГ-ММ-ДДТчч:мм:сс ГГГГММДД] | Примеры: 1. 2004-05-23T14:25:10 2. 2004-05-23T14:25:10.487 Чтобы использовать формат ISO 8601, необходимо указать каждый элемент в этом формате, включая T, двоеточие (:) и точку (.), которые отображаются в этом формате. Квадратные скобки показывают, что доли секунд не являются обязательными. Временной компонент указан в 24-часовом формате. Символ T указывает на начало временной части значения datetime. Преимущество формата ISO 8601 заключается в том, что он является международным стандартом с однозначным представлением. Кроме того, на этот формат не влияют настройки SET DATEFORMAT и SET LANGUAGE. |
Без разделителей | Описание |
---|---|
ГГГГММДД чч:мм:сс |
ODBC | Описание |
---|---|
{ ts ‘1998-05-02 01:23:56.123’ } { d ‘1990-10-02′ } { t ’13:33:41’ } | Интерфейс API ODBC определяет управляющие последовательности, представляющие значения даты и времени, называемые в ODBC метками времени. Этот формат меток времени ODBC также поддерживается определением языка OLE DB (DBGUID-SQL), поддерживаемым поставщиком Microsoft OLE DB для SQL Server. Приложения, использующие ADO, OLE DB или API-интерфейсы, основанные на ODBC, могут использовать этот формат отметок времени ODBC для представления даты и времени. Escape-последовательности меток времени ODBC имеют следующий формат: { literal_type ‘constant_value’ }: — literal_type определяет тип escape-последовательности. Метки времени имеют три описателя literal_type:1) d = только дата2) t = только время3) ts = метка времени (время + дата) — ‘constant_value’ является значением escape-последовательности. Значение constant_value должно соответствовать этим форматам для каждого literal_type.d : гггг-мм-ддt : чч:мм:ссts : гггг-мм-дд чч:мм:сс |