Mysql функция str_to_date()
Содержание:
- ПримерыExamples
- Типы данных даты и времениDate and Time data types
- КомментарииRemarks
- Возвращаемое значениеReturn Value
- iso_week datepartiso_week datepart
- Возвращаемое значениеReturn Value
- CONVERT_TZ(dt,from_tz,to_tz)
- SQL Учебник
- Возвращаемое значениеReturn Value
- DATE_FORMAT(date,format)
- tzoffsettzoffset
- Возвращаемые значения дат с типом данных smalldatetime и частью даты в виде секунд или долей секунды.Return Values for a smalldatetime date and a second or Fractional Seconds datepart
- SUBDATE(date,INTERVAL expr unit) and SUBDATE(expr,days)
- Типы возвращаемых данныхReturn types
- АргументыArguments
- SQL References
- TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
- АргументыArguments
- Соответствие стандартам ANSI и ISO 8601Compliance with ANSI and ISO 8601 Standards
- iso_week datepartiso_week datepart
ПримерыExamples
В приведенном ниже примере возвращаются компоненты указанной даты.This example returns the date parts for the specified date. Подставьте значение datepart из таблицы для аргумента в инструкции SELECT:Substitute a datepart value from the table for the argument in the SELECT statement:
Результирующий набор:Here is the result set.
datepartdatepart | Возвращаемое значениеReturn value |
---|---|
year, yyyy, yyyear, yyyy, yy | 2007 г.2007 |
quarter, qq, qquarter, qq, q | 44 |
month, mm, mmonth, mm, m | ОктябрьOctober |
dayofyear, dy, ydayofyear, dy, y | 303303 |
day, dd, dday, dd, d | 3030 |
week, wk, wwweek, wk, ww | 4444 |
weekday, dwweekday, dw | ВторникTuesday |
hour, hhhour, hh | 1212 |
minute, nminute, n | 1515 |
second, ss, ssecond, ss, s | 3232 |
millisecond, msmillisecond, ms | 123123 |
microsecond, mcsmicrosecond, mcs | 123456123456 |
nanosecond, nsnanosecond, ns | 123456700123456700 |
TZoffset, tzTZoffset, tz | +05:10+05:10 |
ISO_WEEK, ISOWK, ISOWWISO_WEEK, ISOWK, ISOWW | 4444 |
Azure Synapse AnalyticsAzure Synapse Analytics и Параллельное хранилище данныхParallel Data Warehouseand Параллельное хранилище данныхParallel Data Warehouse
В приведенном ниже примере возвращаются компоненты указанной даты.This example returns the date parts for the specified date. Подставьте значение datepart из таблицы для аргумента в инструкции SELECT:Substitute a datepart value from the table for the argument in the SELECT statement:
Результирующий набор:Here is the result set.
datepartdatepart | Возвращаемое значениеReturn value |
---|---|
year, yyyy, yyyear, yyyy, yy | 2007 г.2007 |
quarter, qq, qquarter, qq, q | 44 |
month, mm, mmonth, mm, m | ОктябрьOctober |
dayofyear, dy, ydayofyear, dy, y | 303303 |
day, dd, dday, dd, d | 3030 |
week, wk, wwweek, wk, ww | 4444 |
weekday, dwweekday, dw | ВторникTuesday |
hour, hhhour, hh | 1212 |
minute, nminute, n | 1515 |
second, ss, ssecond, ss, s | 3232 |
millisecond, msmillisecond, ms | 123123 |
microsecond, mcsmicrosecond, mcs | 123456123456 |
nanosecond, nsnanosecond, ns | 123456700123456700 |
TZoffset, tzTZoffset, tz | +05:10+05:10 |
ISO_WEEK, ISOWK, ISOWWISO_WEEK, ISOWK, ISOWW | 4444 |
Типы данных даты и времениDate and Time data types
Типы данных даты и времени Transact-SQLTransact-SQL перечислены в следующей таблице:The Transact-SQLTransact-SQL date and time data types are listed in the following table:
Тип данныхData type | ФорматFormat | ДиапазонRange | ТочностьAccuracy | Объем памяти (в байтах)Storage size (bytes) | Определяемая пользователем точность в долях секундыUser-defined fractional second precision | Смещение часового поясаTime zone offset |
---|---|---|---|---|---|---|
timetime | чч:мм:ссhh:mm:ss | От 00:00:00.0000000 до 23:59:59.999999900:00:00.0000000 through 23:59:59.9999999 | 100 наносекунд100 nanoseconds | от 3 до 53 to 5 | ДаYes | нетNo |
datedate | ГГГГ-ММ-ДДYYYY-MM-DD | От 0001-01-01 до 31.12.990001-01-01 through 9999-12-31 | 1 день1 day | 33 | нетNo | нетNo |
smalldatetimesmalldatetime | ГГГГ-ММ-ДД чч:мм:ссYYYY-MM-DD hh:mm:ss | От 01.01.1900 до 06.06.20791900-01-01 through 2079-06-06 | 1 минута1 minute | 44 | нетNo | нетNo |
datetimedatetime | ГГГГ-ММ-ДД чч:мм:ссYYYY-MM-DD hh:mm:ss | От 01.01.1753 до 31.12.99991753-01-01 through 9999-12-31 | 0,00333 секунды0.00333 second | 88 | нетNo | нетNo |
datetime2datetime2 | ГГГГ-ММ-ДД чч:мм:ссYYYY-MM-DD hh:mm:ss | От 0001-01-01 00:00:00.0000000 до 9999-12-31 23:59:59.99999990001-01-01 00:00:00.0000000 through 9999-12-31 23:59:59.9999999 | 100 наносекунд100 nanoseconds | От 6 до 86 to 8 | ДаYes | нетNo |
datetimeoffsetdatetimeoffset | ГГГГ-ММ-ДД чч:мм:сс чч:ммYYYY-MM-DD hh:mm:ss hh:mm | От 0001-01-01 00:00:00.0000000 до 9999-12-31 23:59:59.9999999 (время в формате UTC)0001-01-01 00:00:00.0000000 through 9999-12-31 23:59:59.9999999 (in UTC) | 100 наносекунд100 nanoseconds | От 8 до 108 to 10 | ДаYes | ДаYes |
Примечание
Тип данных Transact-SQLTransact-SQL rowversion не относится к типам данных даты и времени.The Transact-SQLTransact-SQL rowversion data type is not a date or time data type. Тип данных timestamp является устаревшим синонимом rowversion.timestamp is a deprecated synonym for rowversion.
КомментарииRemarks
Функция SYSUTCDATETIME может использоваться в инструкциях Transact-SQLTransact-SQL везде, где допустимо использование выражений datetime2.Transact-SQLTransact-SQL statements can refer to SYSUTCDATETIME anywhere they can refer to a datetime2 expression.
Тип SYSUTCDATETIME является недетерминированным.SYSUTCDATETIME is a nondeterministic function. Невозможно проиндексировать представления и выражения, ссылающиеся на эту функцию в столбце.Views and expressions that reference this function in a column cannot be indexed.
Примечание
SQL ServerSQL Server получает значения даты и времени с помощью функции GetSystemTimeAsFileTime() Windows API.obtains the date and time values by using the GetSystemTimeAsFileTime() Windows API. Точность зависит от физического оборудования и версии Windows, в которой запущен экземпляр SQL ServerSQL Server.The accuracy depends on the computer hardware and version of Windows on which the instance of SQL ServerSQL Server is running. Точность возвращаемых значений этого API-интерфейса задана равной 100 нс.The precision of this API is fixed at 100 nanoseconds. Точность может быть определена с помощью метода GetSystemTimeAdjustment() интерфейса API Windows.The accuracy can be determined by using the GetSystemTimeAdjustment() Windows API.
Возвращаемое значениеReturn Value
Значение типа int, представляющее разницу между аргументами startdate и enddate в границах, определяемых аргументом datepart.The int difference between the startdate and enddate, expressed in the boundary set by datepart.
Например, возвращает значение -2, указывая на то, что 2036 – високосный год.For example, returns -2, hinting that 2036 must be a leap year. Это означает, что, если начать со startdDate «2036-03-01» и отсчитать -2 дня, будет достигнуто значение enddate «2036-02-28».This case means that if we start at startdate ‘2036-03-01’, and then count -2 days, we reach the enddate of ‘2036-02-28’.
В качестве возвращаемого значения вне диапазона для int (от –2 147 483 648 до 2 147 483 647) возвращает сообщение об ошибке.For a return value out of range for int (-2,147,483,648 to +2,147,483,647), returns an error. Для миллисекунды максимальная разница между startdate и enddate составляет 24 дня 20 часов 31 минута и 23 647 секунд.For millisecond, the maximum difference between startdate and enddate is 24 days, 20 hours, 31 minutes and 23.647 seconds. Для секунды максимальная разница составляет 68 лет, 19 дней, 3 часа, 14 минут и 7 секунд.For second, the maximum difference is 68 years, 19 days, 3 hours, 14 minutes and 7 seconds.
Если обоим аргументам, startdate и enddate, присвоено только значение времени, а аргумент datepart не содержит значения времени datepart, то возвращает значение 0.If startdate and enddate are both assigned only a time value, and the datepart is not a time datepart, returns 0.
При вычислении возвращаемого значения использует компонент смещения часовых поясов для аргументов startdate или enddate. uses the time zone offset component of startdate or enddate to calculate the return value.
Так как значение типа smalldatetime имеет точность до минуты, то при использовании в аргументах startdate и enddate значений типа smalldatetime секунды и миллисекунды у возвращаемых значений всегда равны 0.Because smalldatetime is accurate only to the minute, seconds and milliseconds are always set to 0 in the return value when startdate or enddate have a smalldatetime value.
Если переменной типа данных date присвоено только значение времени, в качестве недостающей части даты задает значение по умолчанию: .If only a time value is assigned to a date data type variable, sets the value of the missing date part to the default value: . Если переменной типа данных time или date присвоено только значение даты, в качестве недостающей части времени задает значение по умолчанию: .If only a date value is assigned to a variable of a time or date data type, sets the value of the missing time part to the default value: . Если в одном из аргументов startdate или enddate указано только время, а в другом только дата, в качестве недостающей информации задает значения по умолчанию.If either startdate or enddate have only a time part and the other only a date part, sets the missing time and date parts to the default values.
Если аргументы startdate и enddate имеют разные типы данных даты, но при этом один из них имеет больше частей времени или обладает более высокой точностью, присваивает значения 0 недостающим частям другого аргумента.If startdate and enddate have different date data types, and one has more time parts or fractional seconds precision than the other, sets the missing parts of the other to 0.
iso_week datepartiso_week datepart
Стандарт ISO 8601 включает в себя систему отсчета дней и недель ISO.ISO 8601 includes the ISO week-date system, a numbering system for weeks. Каждая неделя приписывается тому году, в котором находится ее четверг.Each week is associated with the year in which Thursday occurs. Например, первая неделя 2004 г. (2004W01) считается с понедельника 29 декабря 2003 г. по воскресенье 4 января 2004 г.For example, week 1 of 2004 (2004W01) covered Monday, 29 December 2003 to Sunday, 4 January 2004. Этот стиль нумерации обычно используется в странах и регионах Европы.European countries / regions typically use this style of numbering. В других странах он применяется редко.Non-European countries / regions typically do not use it.
Примечание. Наибольшее число недель в году может составлять 52 или 53.Note: the highest week number in a year could be either 52 or 53.
Система отсчета недель в разных странах и регионах может не совпадать со стандартом ISO.The numbering systems of different countries/regions might not comply with the ISO standard. В таблице ниже представлено шесть возможных вариантов.This table shows six possibilities:
Первый день неделиFirst day of week | Содержание первой недели годаFirst week of year contains | Двойное присвоение недельWeeks assigned two times | Применяется в:Used by/in |
---|---|---|---|
ВоскресеньеSunday | 1 января,1 January,Первая суббота,First Saturday,1–7 дней года1-7 days of year | ДаYes | СШАUnited States |
ПонедельникMonday | 1 января,1 January,Первое воскресенье,First Sunday,1–7 дней года1-7 days of year | ДаYes | Большинство стран Европы, а также ВеликобританияMost of Europe and the United Kingdom |
ПонедельникMonday | 4 января,4 January,Первый четвергFirst Thursday,4–7 дней года4-7 days of year | нетNo | ISO 8601, Норвегия и ШвецияISO 8601, Norway, and Sweden |
ПонедельникMonday | 7 января,7 January,Первый понедельникFirst Monday,7 дней года7 days of year | нетNo | |
СредаWednesday | 1 января,1 January,Первый вторник,First Tuesday,1–7 дней года1-7 days of year | ДаYes | |
СубботаSaturday | 1 января,1 January,Первая пятница,First Friday,1–7 дней года1-7 days of year | ДаYes |
Возвращаемое значениеReturn Value
Каждое выражение datepart и его краткие формы возвращают одно и то же значение.Each datepart and its abbreviations return the same value.
Возвращаемое значение зависит от языка среды, задаваемого инструкцией SET LANGUAGE, и от параметра конфигурации сервера «язык по умолчанию» для имени входа.The return value depends on the language environment set by using SET LANGUAGE, and by the Configure the default language Server Configuration Option of the login. Если значение date является строковым литералом некоторого формата, то возвращаемое значение зависит от функции SET DATEFORMAT.The return value depends on SET DATEFORMAT if date is a string literal of some formats. Инструкция SET DATEFORMAT не изменяет возвращаемое значение, если дата представляется выражением столбца типа данных даты или времени.SET DATEFORMAT does not change the return value when the date is a column expression of a date or time data type.
Ниже представлена таблица соответствия аргументов функции datepart и значений, возвращенных выражением .This table lists all datepart arguments, with corresponding return values, for the statement . Аргумент date имеет тип данных datetimeoffset(7) .The date argument has a datetimeoffset(7) data type. Последние две позиции значения, возвращаемого функцией nanosecond datepart, всегда . Масштаб этого значения составляет 9.The last two positions of the nanosecond datepart return value are always and this value has a scale of 9:
.123456700.123456700
datepartdatepart | Возвращаемое значениеReturn value |
---|---|
year, yyyy, yyyear, yyyy, yy | 2007 г.2007 |
quarter, qq, qquarter, qq, q | 44 |
month, mm, mmonth, mm, m | 1010 |
dayofyear, dy, ydayofyear, dy, y | 303303 |
day, dd, dday, dd, d | 3030 |
week, wk, wwweek, wk, ww | 4444 |
weekday, dwweekday, dw | 33 |
hour, hhhour, hh | 1212 |
minute, nminute, n | 1515 |
second, ss, ssecond, ss, s | 3232 |
millisecond, msmillisecond, ms | 123123 |
microsecond, mcsmicrosecond, mcs | 123456123456 |
nanosecond, nsnanosecond, ns | 123456700123456700 |
tzoffset, tztzoffset, tz | 310310 |
iso_week, isowk, isowwiso_week, isowk, isoww | 4444 |
CONVERT_TZ(dt,from_tz,to_tz)
This converts a datetime value dt from the time zone given by from_tz to the time zone given by to_tz and returns the resulting value. This function returns NULL if the arguments are invalid.
mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET'); +---------------------------------------------------------+ | CONVERT_TZ('2004-01-01 12:00:00','GMT','MET') | +---------------------------------------------------------+ | 2004-01-01 13:00:00 | +---------------------------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00'); +---------------------------------------------------------+ | CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00') | +---------------------------------------------------------+ | 2004-01-01 22:00:00 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
SQL Учебник
SQL ГлавнаяSQL ВведениеSQL СинтаксисSQL SELECTSQL SELECT DISTINCTSQL WHERESQL AND, OR, NOTSQL ORDER BYSQL INSERT INTOSQL Значение NullSQL Инструкция UPDATESQL Инструкция DELETESQL SELECT TOPSQL MIN() и MAX()SQL COUNT(), AVG() и …SQL Оператор LIKESQL ПодстановочныйSQL Оператор INSQL Оператор BETWEENSQL ПсевдонимыSQL JOINSQL JOIN ВнутриSQL JOIN СлеваSQL JOIN СправаSQL JOIN ПолноеSQL JOIN СамSQL Оператор UNIONSQL GROUP BYSQL HAVINGSQL Оператор ExistsSQL Операторы Any, AllSQL SELECT INTOSQL INSERT INTO SELECTSQL Инструкция CASESQL Функции NULLSQL ХранимаяSQL Комментарии
Возвращаемое значениеReturn Value
Возвращаемое значение зависит от языка среды, задаваемого инструкцией SET LANGUAGE, и от параметра конфигурации сервера «язык по умолчанию» для имени входа.The return value depends on the language environment set by using SET LANGUAGE, and by the Configure the default language Server Configuration Option of the login. Если значение date является строковым литералом некоторого формата, то возвращаемое значение зависит от функции SET DATEFORMAT.The return value depends on SET DATEFORMAT if date is a string literal of some formats. Инструкция SET DATEFORMAT не изменяет возвращаемое значение, если дата представляется выражением столбца типа данных даты или времени.SET DATEFORMAT does not change the return value when the date is a column expression of a date or time data type.
Если параметр date имеет аргумент типа date, то возвращаемое значение зависит от настроек, заданных с помощью функции SET DATEFIRST.When the date parameter has a date data type argument, the return value depends on the setting specified by SET DATEFIRST.
DATE_FORMAT(date,format)
This command formats the date value as per the format string.
The following specifiers may be used in the format string. The ‘%’ character is required before the format specifier characters.
Sr.No. | Specifier & Description |
---|---|
1 |
%a Abbreviated weekday name (Sun..Sat) |
2 |
%b Abbreviated month name (Jan..Dec) |
3 |
%c Month, numeric (0..12) |
4 |
%D Day of the month with English suffix (0th, 1st, 2nd, 3rd, .) |
5 |
%d Day of the month, numeric (00..31) |
6 |
%e Day of the month, numeric (0..31) |
7 |
%f Microseconds (000000..999999) |
8 |
%H Hour (00..23) |
9 |
%h Hour (01..12) |
10 |
%I Hour (01..12) |
11 |
%i Minutes, numeric (00..59) |
12 |
%j Day of year (001..366) |
13 |
%k Hour (0..23) |
14 |
%l Hour (1..12) |
15 |
%M Month name (January..December) |
16 |
%m Month, numeric (00..12) |
17 |
%p AM or PM |
18 |
%r Time, 12-hour (hh:mm:ss followed by AM or PM) |
19 |
%S Seconds (00..59) |
20 |
%s Seconds (00..59) |
21 |
%T Time, 24-hour (hh:mm:ss) |
22 |
%U Week (00..53), where Sunday is the first day of the week |
23 |
%u Week (00..53), where Monday is the first day of the week |
24 |
%V Week (01..53), where Sunday is the first day of the week; used with %X |
25 |
%v Week (01..53), where Monday is the first day of the week; used with %x |
26 |
%W Weekday name (Sunday..Saturday) |
27 |
%w Day of the week (0=Sunday..6=Saturday) |
28 |
%X Year for the week where Sunday is the first day of the week, numeric, four digits; used with %V |
29 |
%x Year for the week, where Monday is the first day of the week, numeric, four digits; used with %v |
30 |
%Y Year, numeric, four digits |
31 |
%y Year, numeric (two digits) |
32 |
%% A literal .%. character |
33 |
%x x, for any.x. not listed above |
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y'); +---------------------------------------------------------+ | DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y') | +---------------------------------------------------------+ | Saturday October 1997 | +---------------------------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00' -> '%H %k %I %r %T %S %w'); +---------------------------------------------------------+ | DATE_FORMAT('1997-10-04 22:23:00....... | +---------------------------------------------------------+ | 22 22 10 10:23:00 PM 22:23:00 00 6 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
tzoffsettzoffset
возвращает значение tzoffset (tz) как количество минут (со знаком). returns the tzoffset (tz) value as the number of minutes (signed). В результате выполнения этой инструкции возвращается смещение часового пояса 310 минут:This statement returns a time zone offset of 310 minutes:
Функция отображает значение tzoffset описанным ниже образом. renders the tzoffset value as follows:
- Для datetimeoffset и datetime2 значение tzoffset возвращает временное смещение в минутах, причем для datetime2 смещение всегда равно 0 минут.For datetimeoffset and datetime2, tzoffset returns the time offset in minutes, where the offset for datetime2 is always 0 minutes.
- Для типов данных, которые могут быть неявно преобразованы в datetimeoffset или datetime2, функция возвращает временное смещение в минутах.For data types that can implicitly convert to datetimeoffset or datetime2, returns the time offset in minutes. Для остальных типов даты и времени этого не происходит.Exception: other date / time data types.
- Для параметров любых других типов возвращается ошибка.Parameters of all other types result in an error.
Возвращаемые значения дат с типом данных smalldatetime и частью даты в виде секунд или долей секунды.Return Values for a smalldatetime date and a second or Fractional Seconds datepart
Значение секунд даты типа smalldatetime всегда равно 00.The seconds part of a smalldatetime value is always 00. Для значения date типа smalldatetime действуют указанные ниже условия.For a smalldatetime date value, the following apply:
- Для части даты datepart секунды second и значения number в диапазоне от –30 до +29 не вносит никаких изменений.For a datepart of second, and a number value between -30 and +29, makes no changes.
- Для части даты datepart секунды second и значения number меньше –30 или больше +29 выполняет добавление, начиная с одной минуты.For a datepart of second, and a number value less than -30, or more than +29, performs its addition beginning at one minute.
- Для части даты datepart миллисекунды millisecond и значения number в диапазоне от –30 001 до + 29 998 не вносит никаких изменений.For a datepart of millisecond and a number value between -30001 and +29998, makes no changes.
- Для части даты datepart миллисекунды millisecond и значения number меньше –30 001 или больше +29 998 выполняет добавление, начиная с одной минуты.For a datepart of millisecond and a number value less than -30001, or more than +29998, performs its addition beginning at one minute.
SUBDATE(date,INTERVAL expr unit) and SUBDATE(expr,days)
When invoked with the INTERVAL form of the second argument, SUBDATE() is a synonym for DATE_SUB(). For information on the INTERVAL unit argument, see the discussion for DATE_ADD().
mysql> SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY); +---------------------------------------------------------+ | DATE_SUB('1998-01-02', INTERVAL 31 DAY) | +---------------------------------------------------------+ | 1997-12-02 | +---------------------------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT SUBDATE('1998-01-02', INTERVAL 31 DAY); +---------------------------------------------------------+ | SUBDATE('1998-01-02', INTERVAL 31 DAY) | +---------------------------------------------------------+ | 1997-12-02 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Типы возвращаемых данныхReturn types
Тип данных возвращаемого значения для этого метода является динамическим.The return value data type for this method is dynamic. Тип возвращаемого значения зависит от типа аргумента, переданного в .The return type depends on the argument supplied for . Если значение для является строковым литералом даты, возвращает значение datetime.If the value for is a string literal date, returns a datetime value. Если для предоставляется другой тип допустимых входных данных, возвращает тот же тип данных.If another valid input data type is supplied for , returns the same data type. Если строковый литерал имеет более трех позиций долей секунды (.nnn) или если строковый литерал содержит часть смещения часового пояса, выдаст ошибку. raises an error if the string literal seconds scale exceeds three decimal place positions (.nnn) or if the string literal contains the time zone offset part.
АргументыArguments
datepartdatepartЕдиницы, в которых функция DATEDIFF сообщает о разнице между startdate и enddate.The units in which DATEDIFF reports the difference between the startdate and enddate. К часто используемым единицам datepart относятся или .Commonly used datepart units include or .
Значение datepart не может быть указано в переменной или в виде строки в кавычках, например .The datepart value cannot be specified in a variable, nor as a quoted string like .
В приведенной ниже таблице перечислены все допустимые значения datepart.The following table lists all the valid datepart values. Функция DATEDIFF принимает либо полное имя datepart, либо любое приведенное сокращение полного имени.DATEDIFF accepts either the full name of the datepart, or any listed abbreviation of the full name.
Имя datepartdatepart name | Сокращение datepartdatepart abbreviation |
---|---|
yearyear | yy, yyyyyy, yyyy |
quarterquarter | qq, qqq, q |
monthmonth | mm, mmm, m |
dayofyeardayofyear | dy, ydy, y |
dayday | dd, ddd, d |
weekweek | wk, wwwk, ww |
hourhour | hhhh |
minuteminute | mi, nmi, n |
secondsecond | ss, sss, s |
millisecondmillisecond | msms |
microsecondmicrosecond | mcsmcs |
nanosecondnanosecond | nsns |
Примечание
Каждое конкретное имя аргумента datepart и сокращение этого имени datepart будут возвращать одно и то же значение.Each specific datepart name and abbreviations for that datepart name will return the same value.
startdatestartdateВыражение, которое может быть разрешено в одно из следующих значений.An expression that can resolve to one of the following values:
- datedate
- datetimedatetime
- datetimeoffsetdatetimeoffset
- datetime2datetime2
- smalldatetimesmalldatetime
- timetime
Во избежание неоднозначности используйте четырехзначную запись года.Use four-digit years to avoid ambiguity. Сведения о двузначном обозначении года см. в статье Настройка параметра конфигурации сервера two digit year cutoff.See Configure the two digit year cutoff Server Configuration Option for information about two-digit year values.
enddateenddateСм. описание аргумента startdate.See startdate.
SQL References
SQL Keywords
ADD
ADD CONSTRAINT
ALTER
ALTER COLUMN
ALTER TABLE
ALL
AND
ANY
AS
ASC
BACKUP DATABASE
BETWEEN
CASE
CHECK
COLUMN
CONSTRAINT
CREATE
CREATE DATABASE
CREATE INDEX
CREATE OR REPLACE VIEW
CREATE TABLE
CREATE PROCEDURE
CREATE UNIQUE INDEX
CREATE VIEW
DATABASE
DEFAULT
DELETE
DESC
DISTINCT
DROP
DROP COLUMN
DROP CONSTRAINT
DROP DATABASE
DROP DEFAULT
DROP INDEX
DROP TABLE
DROP VIEW
EXEC
EXISTS
FOREIGN KEY
FROM
FULL OUTER JOIN
GROUP BY
HAVING
IN
INDEX
INNER JOIN
INSERT INTO
INSERT INTO SELECT
IS NULL
IS NOT NULL
JOIN
LEFT JOIN
LIKE
LIMIT
NOT
NOT NULL
OR
ORDER BY
OUTER JOIN
PRIMARY KEY
PROCEDURE
RIGHT JOIN
ROWNUM
SELECT
SELECT DISTINCT
SELECT INTO
SELECT TOP
SET
TABLE
TOP
TRUNCATE TABLE
UNION
UNION ALL
UNIQUE
UPDATE
VALUES
VIEW
WHERE
MySQL Functions
String Functions
ASCII
CHAR_LENGTH
CHARACTER_LENGTH
CONCAT
CONCAT_WS
FIELD
FIND_IN_SET
FORMAT
INSERT
INSTR
LCASE
LEFT
LENGTH
LOCATE
LOWER
LPAD
LTRIM
MID
POSITION
REPEAT
REPLACE
REVERSE
RIGHT
RPAD
RTRIM
SPACE
STRCMP
SUBSTR
SUBSTRING
SUBSTRING_INDEX
TRIM
UCASE
UPPER
Numeric Functions
ABS
ACOS
ASIN
ATAN
ATAN2
AVG
CEIL
CEILING
COS
COT
COUNT
DEGREES
DIV
EXP
FLOOR
GREATEST
LEAST
LN
LOG
LOG10
LOG2
MAX
MIN
MOD
PI
POW
POWER
RADIANS
RAND
ROUND
SIGN
SIN
SQRT
SUM
TAN
TRUNCATE
Date Functions
ADDDATE
ADDTIME
CURDATE
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURTIME
DATE
DATEDIFF
DATE_ADD
DATE_FORMAT
DATE_SUB
DAY
DAYNAME
DAYOFMONTH
DAYOFWEEK
DAYOFYEAR
EXTRACT
FROM_DAYS
HOUR
LAST_DAY
LOCALTIME
LOCALTIMESTAMP
MAKEDATE
MAKETIME
MICROSECOND
MINUTE
MONTH
MONTHNAME
NOW
PERIOD_ADD
PERIOD_DIFF
QUARTER
SECOND
SEC_TO_TIME
STR_TO_DATE
SUBDATE
SUBTIME
SYSDATE
TIME
TIME_FORMAT
TIME_TO_SEC
TIMEDIFF
TIMESTAMP
TO_DAYS
WEEK
WEEKDAY
WEEKOFYEAR
YEAR
YEARWEEK
Advanced Functions
BIN
BINARY
CASE
CAST
COALESCE
CONNECTION_ID
CONV
CONVERT
CURRENT_USER
DATABASE
IF
IFNULL
ISNULL
LAST_INSERT_ID
NULLIF
SESSION_USER
SYSTEM_USER
USER
VERSION
SQL Server Functions
String Functions
ASCII
CHAR
CHARINDEX
CONCAT
Concat with +
CONCAT_WS
DATALENGTH
DIFFERENCE
FORMAT
LEFT
LEN
LOWER
LTRIM
NCHAR
PATINDEX
QUOTENAME
REPLACE
REPLICATE
REVERSE
RIGHT
RTRIM
SOUNDEX
SPACE
STR
STUFF
SUBSTRING
TRANSLATE
TRIM
UNICODE
UPPER
Numeric Functions
ABS
ACOS
ASIN
ATAN
ATN2
AVG
CEILING
COUNT
COS
COT
DEGREES
EXP
FLOOR
LOG
LOG10
MAX
MIN
PI
POWER
RADIANS
RAND
ROUND
SIGN
SIN
SQRT
SQUARE
SUM
TAN
Date Functions
CURRENT_TIMESTAMP
DATEADD
DATEDIFF
DATEFROMPARTS
DATENAME
DATEPART
DAY
GETDATE
GETUTCDATE
ISDATE
MONTH
SYSDATETIME
YEAR
Advanced Functions
CAST
COALESCE
CONVERT
CURRENT_USER
IIF
ISNULL
ISNUMERIC
NULLIF
SESSION_USER
SESSIONPROPERTY
SYSTEM_USER
USER_NAME
MS Access Functions
String Functions
Asc
Chr
Concat with &
CurDir
Format
InStr
InstrRev
LCase
Left
Len
LTrim
Mid
Replace
Right
RTrim
Space
Split
Str
StrComp
StrConv
StrReverse
Trim
UCase
Numeric Functions
Abs
Atn
Avg
Cos
Count
Exp
Fix
Format
Int
Max
Min
Randomize
Rnd
Round
Sgn
Sqr
Sum
Val
Date Functions
Date
DateAdd
DateDiff
DatePart
DateSerial
DateValue
Day
Format
Hour
Minute
Month
MonthName
Now
Second
Time
TimeSerial
TimeValue
Weekday
WeekdayName
Year
Other Functions
CurrentUser
Environ
IsDate
IsNull
IsNumeric
SQL Quick Ref
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
Returns the integer difference between the date or datetime expressions datetime_expr1 and datetime_expr2. The unit for the result is given by the unit argument. The legal values for the unit are the same as those listed in the description of the TIMESTAMPADD() function.
mysql> SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01'); +---------------------------------------------------------+ | TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01') | +---------------------------------------------------------+ | 3 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
АргументыArguments
datepartdatepartОпределенная часть аргумента date, для которого функция вернет значение типа integer.The specific part of the date argument for which will return an integer. В приведенной ниже таблице перечислены все допустимые аргументы datepart.This table lists all valid datepart arguments.
Примечание
не принимает эквивалентные переменные, определяемые пользователем, для аргументов datepart. does not accept user-defined variable equivalents for the datepart arguments.
datepartdatepart | СокращенияAbbreviations |
---|---|
yearyear | yy, yyyyyy, yyyy |
quarterquarter | qq, qqq, q |
monthmonth | mm, mmm, m |
dayofyeardayofyear | dy, ydy, y |
dayday | dd, ddd, d |
weekweek | wk, wwwk, ww |
weekdayweekday | dwdw |
hourhour | hhhh |
minuteminute | mi, nmi, n |
secondsecond | ss, sss, s |
millisecondmillisecond | msms |
microsecondmicrosecond | mcsmcs |
nanosecondnanosecond | nsns |
tzoffsettzoffset | tztz |
iso_weekiso_week | isowk, isowwisowk, isoww |
datedateВыражение, которое разрешается в один из следующих типов данных:An expression that resolves to one of the following data types:
- datedate
- datetimedatetime
- datetimeoffsetdatetimeoffset
- datetime2datetime2
- smalldatetimesmalldatetime
- timetime
Для date будет принимать столбец выражения, выражение, строковый литерал или определяемую пользователем переменную.For date, will accept a column expression, expression, string literal, or user-defined variable. Во избежание неоднозначности используйте четырехзначную запись года.Use four-digit years to avoid ambiguity issues. Сведения о двузначном обозначении года см. в статье Настройка параметра конфигурации сервера two digit year cutoff.See Configure the two digit year cutoff Server Configuration Option for information about two-digit years.
Соответствие стандартам ANSI и ISO 8601Compliance with ANSI and ISO 8601 Standards
Использование 24-часового формата и секунды координации свыше 59 согласно стандарту ISO 8601 (5.3.2 и 5.3) не поддерживается с целью обратной совместимости и соответствия существующим форматам даты и времени.Using hour 24 to represent midnight and leap second over 59 as defined by ISO 8601 (5.3.2 and 5.3) are not supported to be backward compatible and consistent with the existing date and time types.
Формат строковых литералов по умолчанию (который используется для клиента нижнего уровня) соответствует стандарту языка SQL, определенному в форме чч.мм:сс.The default string literal format (used for down-level client) will align with the SQL standard form, which is defined as hh:mm:ss. Такой формат напоминает определение стандарта ISO 8601 для типа TIME, за исключением долей секунд.This format resembles the ISO 8601 definition for TIME excluding fractional seconds.
iso_week datepartiso_week datepart
Стандарт ISO 8601 включает в себя систему отсчета дней и недель ISO.ISO 8601 includes the ISO week-date system, a numbering system for weeks. Каждая неделя приписывается тому году, в котором находится ее четверг.Each week is associated with the year in which Thursday occurs. Например, первая неделя 2004 г. (2004W01) считается с понедельника 29 декабря 2003 г. по воскресенье 4 января 2004 г.For example, week 1 of 2004 (2004W01) covered Monday, 29 December 2003 to Sunday, 4 January 2004. Этот стиль нумерации обычно используется в странах и регионах Европы.European countries / regions typically use this style of numbering. В других странах он применяется редко.Non-European countries / regions typically do not use it.
Примечание. Наибольшее число недель в году может составлять 52 или 53.Note: the highest week number in a year could be either 52 or 53.
Система отсчета недель в разных странах и регионах может не совпадать со стандартом ISO.The numbering systems of different countries/regions might not comply with the ISO standard. В таблице ниже представлено шесть возможных вариантов.This table shows six possibilities:
Первый день неделиFirst day of week | Содержание первой недели годаFirst week of year contains | Двойное присвоение недельWeeks assigned two times | Применяется в:Used by/in |
---|---|---|---|
ВоскресеньеSunday | 1 января,1 January,Первая суббота,First Saturday,1–7 дней года1-7 days of year | ДаYes | СШАUnited States |
ПонедельникMonday | 1 января,1 January,Первое воскресенье,First Sunday,1–7 дней года1-7 days of year | ДаYes | Большинство стран Европы, а также ВеликобританияMost of Europe and the United Kingdom |
ПонедельникMonday | 4 января,4 January,Первый четвергFirst Thursday,4–7 дней года4-7 days of year | нетNo | ISO 8601, Норвегия и ШвецияISO 8601, Norway, and Sweden |
ПонедельникMonday | 7 января,7 January,Первый понедельникFirst Monday,7 дней года7 days of year | нетNo | |
СредаWednesday | 1 января,1 January,Первый вторник,First Tuesday,1–7 дней года1-7 days of year | ДаYes | |
СубботаSaturday | 1 января,1 January,Первая пятница,First Friday,1–7 дней года1-7 days of year | ДаYes |