Функции и типы данных даты и времени — SQL Server (Transact-SQL)
- Чтение занимает 7 мин
В этой статье
Применимо к:Applies to: SQL ServerSQL Server (все поддерживаемые версии) SQL ServerSQL Server (all supported versions) База данных SQL AzureAzure SQL DatabaseБаза данных SQL AzureAzure SQL Database Управляемый экземпляр SQL AzureAzure SQL Managed InstanceУправляемый экземпляр SQL AzureAzure SQL Managed Instance Azure Synapse AnalyticsAzure Synapse AnalyticsAzure Synapse AnalyticsAzure Synapse AnalyticsПрименимо к:Applies to: SQL ServerSQL Server (все поддерживаемые версии) SQL ServerSQL Server (all supported versions) База данных SQL AzureAzure SQL DatabaseБаза данных SQL AzureAzure SQL Database Управляемый экземпляр SQL AzureAzure SQL Managed InstanceУправляемый экземпляр SQL AzureAzure SQL Managed Instance Azure Synapse AnalyticsAzure Synapse AnalyticsAzure Synapse AnalyticsAzure Synapse Analytics
В разделах этой статьи представлен обзор всех типов данных и функций даты и времени Transact-SQLTransact-SQL. The sections in this topic cover all Transact-SQLTransact-SQL date and time data types and functions.
Типы данных даты и времени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[.nnnnnnn] | От 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. | 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[.nnn] | От 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[.nnnnnnn] | От 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[. nnnnnnn] [+|-]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.
Функции даты и времениDate and Time functions
В следующих таблицах приводятся функции даты и времени Transact-SQLTransact-SQL.The following tables list the Transact-SQLTransact-SQL date and time functions. Дополнительные сведения о детерминизме см. в статье Детерминированные и недетерминированные функции.
Функции, возвращающие значения системной даты и времениFunction That Return System Date and Time Values
Transact-SQLTransact-SQL наследует все значения системной даты и времени от операционной системы компьютера, на котором работает экземпляр SQL ServerSQL Server.derives all system date and time values from the operating system of the computer on which the instance of SQL ServerSQL Server runs.
Высокоточные функции системной даты и времениHigher-Precision System Date and Time Functions
SQL Server 2019 (15.x)SQL Server 2019 (15.x) получает значения даты и времени с помощью функции GetSystemTimeAsFileTime() Windows API.derives the date and time values through use of 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 running.
КомпонентFunction | СинтаксисSyntax | Возвращаемое значениеReturn value | Тип возвращаемых данныхReturn data type | ДетерминизмDeterminism |
---|---|---|---|---|
SYSDATETIMESYSDATETIME | SYSDATETIME ()SYSDATETIME () | Возвращает значение типа datetime2(7) , которое содержит дату и время компьютера, на котором запущен экземпляр SQL ServerSQL Server.Returns a datetime2(7) value containing the date and time of the computer on which the instance of SQL ServerSQL Server runs. Возвращаемое значение не содержит смещение часового пояса.The returned value does not include the time zone offset. | datetime2(7)datetime2(7) | НедетерминированнаяNondeterministic |
SYSDATETIMEOFFSETSYSDATETIMEOFFSET | SYSDATETIMEOFFSET ( )SYSDATETIMEOFFSET ( ) | Возвращает значение типа datetimeoffset(7) , которое содержит дату и время компьютера, на котором запущен экземпляр SQL ServerSQL Server. Returns a datetimeoffset(7) value containing the date and time of the computer on which the instance of SQL ServerSQL Server runs. Возвращаемое значение содержит смещение часового пояса.The returned value includes the time zone offset. | datetimeoffset(7) | НедетерминированнаяNondeterministic |
SYSUTCDATETIMESYSUTCDATETIME | SYSUTCDATETIME ( )SYSUTCDATETIME ( ) | Возвращает значение типа datetime2(7) , которое содержит дату и время компьютера, на котором запущен экземпляр SQL ServerSQL Server.Returns a datetime2(7) value containing the date and time of the computer on which the instance of SQL ServerSQL Server is running. Функция возвращает значения даты и времени в формате UTC.The function returns the date and time values as UTC time (Coordinated Universal Time). | datetime2(7)datetime2(7) | НедетерминированнаяNondeterministic |
Функции системной даты и времени меньшей точностиLower-Precision System Date and Time Functions
КомпонентFunction | СинтаксисSyntax | Возвращаемое значениеReturn value | Тип возвращаемых данныхReturn data type | ДетерминизмDeterminism |
---|---|---|---|---|
CURRENT_TIMESTAMPCURRENT_TIMESTAMP | CURRENT_TIMESTAMPCURRENT_TIMESTAMP | Возвращает значение типа datetime, которое содержит дату и время компьютера, на котором запущен экземпляр SQL ServerSQL Server. Returns a datetime value containing the date and time of the computer on which the instance of SQL ServerSQL Server runs. Возвращаемое значение не содержит смещение часового пояса.The returned value does not include the time zone offset. | datetimedatetime | НедетерминированнаяNondeterministic |
GETDATEGETDATE | GETDATE ( )GETDATE ( ) | Возвращает значение типа datetime, которое содержит дату и время компьютера, на котором запущен экземпляр SQL ServerSQL Server.Returns a datetime value containing the date and time of the computer on which the instance of SQL ServerSQL Server runs. Возвращаемое значение не содержит смещение часового пояса.The returned value does not include the time zone offset. | datetimedatetime | НедетерминированнаяNondeterministic |
GETUTCDATEGETUTCDATE | GETUTCDATE ( )GETUTCDATE ( ) | Возвращает значение типа datetime, которое содержит дату и время компьютера, на котором запущен экземпляр SQL ServerSQL Server. Returns a datetime value containing the date and time of the computer on which the instance of SQL ServerSQL Server runs. Функция возвращает значения даты и времени в формате UTC.The function returns the date and time values as UTC time (Coordinated Universal Time). | datetimedatetime | НедетерминированнаяNondeterministic |
Функции, возвращающие компоненты даты и времениFunctions That Return Date and Time Parts
КомпонентFunction | СинтаксисSyntax | Возвращаемое значениеReturn value | Тип возвращаемых данныхReturn data type | ДетерминизмDeterminism |
---|---|---|---|---|
DATENAMEDATENAME | DATENAME ( datepart , date )DATENAME ( datepart , date ) | Возвращает строку символов, представляющую указанную часть datepart заданного типа date.Returns a character string representing the specified datepart of the specified date. | nvarcharnvarchar | НедетерминированнаяNondeterministic |
DATEPARTDATEPART | DATEPART ( datepart , date )DATEPART ( datepart , date ) | Возвращает целое число, представляющее указанную часть datepart заданного типа date.Returns an integer representing the specified datepart of the specified date. | intint | НедетерминированнаяNondeterministic |
DAYDAY | DAY ( date )DAY ( date ) | Возвращает целое число, представляющее часть дня указанного типа date.Returns an integer representing the day part of the specified date. | intint | ДетерминированноеDeterministic |
MONTHMONTH | MONTH ( date )MONTH ( date ) | Возвращает целое число, представляющее часть месяца указанного типа date. Returns an integer representing the month part of a specified date. | intint | ДетерминированноеDeterministic |
YEARYEAR | YEAR ( date )YEAR ( date ) | Возвращает целое число, представляющее часть года указанного типа date.Returns an integer representing the year part of a specified date. | intint | ДетерминированноеDeterministic |
Функции, возвращающие значения даты и времени из их компонентовFunctions That Return Date and Time Values from Their Parts
КомпонентFunction | СинтаксисSyntax | Возвращаемое значениеReturn value | Тип возвращаемых данныхReturn data type | ДетерминизмDeterminism |
---|---|---|---|---|
DATEFROMPARTSDATEFROMPARTS | DATEFROMPARTS ( year, month, day )DATEFROMPARTS ( year, month, day ) | Возвращает значение date, соответствующее указанному числу, месяцу и году. Returns a date value for the specified year, month, and day. | datedate | ДетерминированноеDeterministic |
DATETIME2FROMPARTSDATETIME2FROMPARTS | DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision)DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision) | Возвращает значение datetime2, соответствующее указанной дате и времени с заданной точностью.Returns a datetime2 value for the specified date and time, with the specified precision. | datetime2( precision )datetime2( precision ) | ДетерминированноеDeterministic |
DATETIMEFROMPARTSDATETIMEFROMPARTS | DATETIMEFROMPARTS ( year, month, day, hour, minute, seconds, milliseconds)DATETIMEFROMPARTS ( year, month, day, hour, minute, seconds, milliseconds) | Возвращает значение datetime, соответствующее указанной дате и времени. Returns a datetime value for the specified date and time. | datetimedatetime | ДетерминированноеDeterministic |
DATETIMEOFFSETFROMPARTSDATETIMEOFFSETFROMPARTS | DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision)DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision) | Возвращает значение datetimeoffset для указанных даты и времени с указанными смещением и точностью.Returns a datetimeoffset value for the specified date and time, with the specified offsets and precision. | datetimeoffset( precision )datetimeoffset( precision ) | ДетерминированноеDeterministic |
SMALLDATETIMEFROMPARTSSMALLDATETIMEFROMPARTS | SMALLDATETIMEFROMPARTS ( year, month, day, hour, minute )SMALLDATETIMEFROMPARTS ( year, month, day, hour, minute ) | Возвращает значение smalldatetime, соответствующее указанной дате и времени. Returns a smalldatetime value for the specified date and time. | smalldatetimesmalldatetime | ДетерминированноеDeterministic |
TIMEFROMPARTSTIMEFROMPARTS | TIMEFROMPARTS ( hour, minute, seconds, fractions, precision )TIMEFROMPARTS ( hour, minute, seconds, fractions, precision ) | Возвращает значение time, соответствующее указанному времени с заданной точностью.Returns a time value for the specified time, with the specified precision. | time( precision )time( precision ) | ДетерминированноеDeterministic |
Функции, возвращающие значения разности даты и времениFunctions That Return Date and Time Difference Values
КомпонентFunction | СинтаксисSyntax | Возвращаемое значениеReturn value | Тип возвращаемых данныхReturn data type | ДетерминизмDeterminism |
---|---|---|---|---|
DATEDIFFDATEDIFF | DATEDIFF ( datepart , startdate , enddate )DATEDIFF ( datepart , startdate , enddate ) | Возвращает количество границ даты или времени datepart, пересекающихся между двумя указанными датами. Returns the number of date or time datepart boundaries, crossed between two specified dates. | intint | ДетерминированноеDeterministic |
DATEDIFF_BIGDATEDIFF_BIG | DATEDIFF_BIG ( datepart , startdate , enddate )DATEDIFF_BIG ( datepart , startdate , enddate ) | Возвращает количество границ даты или времени datepart, пересекающихся между двумя указанными датами.Returns the number of date or time datepart boundaries, crossed between two specified dates. | bigintbigint | ДетерминированноеDeterministic |
Функции, изменяющие значения даты и времениFunctions That Modify Date and Time Values
КомпонентFunction | СинтаксисSyntax | Возвращаемое значениеReturn value | Тип возвращаемых данныхReturn data type | ДетерминизмDeterminism |
---|---|---|---|---|
DATEADDDATEADD | DATEADD (datepart , number , date )DATEADD (datepart , number , date ) | Возвращает новое значение datetime, добавляя интервал к указанной части datepart заданной даты date. Returns a new datetime value by adding an interval to the specified datepart of the specified date. | Тип данных аргумента dateThe data type of the date argument | ДетерминированноеDeterministic |
EOMONTHEOMONTH | EOMONTH ( start_date [, month_to_add ] )EOMONTH ( start_date [, month_to_add ] ) | Возвращает последний день месяца, содержащего указанную дату, с необязательным смещением.Returns the last day of the month containing the specified date, with an optional offset. | Тип возвращаемого значения — это тип аргумента start_date или тип данных date.Return type is the type of the start_date argument, or alternately, the date data type. | ДетерминированноеDeterministic |
SWITCHOFFSETSWITCHOFFSET | SWITCHOFFSET (DATETIMEOFFSET, time_zone)SWITCHOFFSET (DATETIMEOFFSET , time_zone) | Функция SWITCHOFFSET изменяет смещение часового пояса для значения DATETIMEOFFSET и сохраняет значение UTC. SWITCHOFFSET changes the time zone offset of a DATETIMEOFFSET value, and preserves the UTC value. | Значение datetimeoffset с точностью в долях секунд, заданной в аргументе DATETIMEOFFSETdatetimeoffset with the fractional precision of the DATETIMEOFFSET | ДетерминированноеDeterministic |
TODATETIMEOFFSETTODATETIMEOFFSET | TODATETIMEOFFSET (expression , time_zone)TODATETIMEOFFSET (expression , time_zone) | TODATETIMEOFFSET преобразует значение типа datetime2 в значение типа datetimeoffset.TODATETIMEOFFSET transforms a datetime2 value into a datetimeoffset value. Функция TODATETIMEOFFSET преобразует значение datetime2 в местное время для указанного time_zone.TODATETIMEOFFSET interprets the datetime2 value in local time, for the specified time_zone. | Значение datetimeoffset с точностью в долях секунд, заданной в аргументе datetimedatetimeoffset with the fractional precision of the datetime argument | ДетерминированноеDeterministic |
Функции, устанавливающие или возвращающие функции формата сеансаFunctions That Set or Return Session Format Functions
КомпонентFunction | СинтаксисSyntax | Возвращаемое значениеReturn value | Тип возвращаемых данныхReturn data type | ДетерминизмDeterminism |
---|---|---|---|---|
@@DATEFIRST@@DATEFIRST | @@DATEFIRST@@DATEFIRST | Возвращает текущее значение параметра SET DATEFIRST для сеанса. Returns the current value, for the session, of SET DATEFIRST. | tinyinttinyint | НедетерминированнаяNondeterministic |
SET DATEFIRSTSET DATEFIRST | SET DATEFIRST { number | @ number_var }SET DATEFIRST { number | @number_var } | Устанавливает первый день недели в виде числа от 1 до 7.Sets the first day of the week to a number from 1 through 7. | НеприменимоNot applicable | НеприменимоNot applicable |
SET DATEFORMATSET DATEFORMAT | SET DATEFORMAT { format | @ format_var }SET DATEFORMAT { format | @format_var } | Задает порядок составляющих даты (месяц/день/год) для ввода данных типа datetime или smalldatetime.Sets the order of the dateparts (month/day/year) for entering datetime or smalldatetime data. | НеприменимоNot applicable | НеприменимоNot applicable |
@@LANGUAGE@@LANGUAGE | @@LANGUAGE@@LANGUAGE | Возвращает название использующегося в настоящий момент языка.Returns the name of the language in current used. Функция @@LANGUAGE не является функцией даты или времени.@@LANGUAGE is not a date or time function. Однако на данные, выводимые функциями даты, могут повлиять настройки языка.However, the language setting can affect the output of date functions. | НеприменимоNot applicable | НеприменимоNot applicable |
SET LANGUAGESET LANGUAGE | SET LANGUAGE { [ N ] ‘ language ‘ | @ language_var }SET LANGUAGE { [ N ] ‘language‘ | @language_var } | Устанавливает языковую среду сеанса и системных сообщений.Sets the language environment for the session and system messages. SET LANGUAGE не является функцией даты или времени.SET LANGUAGE is not a date or time function. Однако на данные, выводимые функциями даты, влияет параметр языка.However, the language setting affects the output of date functions. | НеприменимоNot applicable | НеприменимоNot applicable |
sp_helplanguagesp_helplanguage | sp_helplanguage [ [ @language = ] ‘ language ‘ ]sp_helplanguage [ [ @language = ] ‘language‘ ] | Возвращает сведения о формате даты всех поддерживаемых языков.Returns information about date formats of all supported languages. sp_helplanguage не является хранимой процедурой даты или времени.sp_helplanguage is not a date or time stored procedure. Однако на данные, выводимые функциями даты, влияет параметр языка.However, the language setting affects the output of date functions. | НеприменимоNot applicable | НеприменимоNot applicable |
Функции, проверяющие значения даты и времениFunctions That Validate Date and Time Values
КомпонентFunction | СинтаксисSyntax | Возвращаемое значениеReturn value | Тип возвращаемых данныхReturn data type | ДетерминизмDeterminism |
---|---|---|---|---|
ISDATEISDATE | ISDATE ( expression )ISDATE ( expression ) | Определяет, является ли входное выражение типа datetime или smalldatetime допустимым значением даты или времени.Determines whether a datetime or smalldatetime input expression has a valid date or time value. | intint | Функция ISDATE детерминирована, только если используется совместно с функцией CONVERT и если заданный параметр стиля CONVERT не равен 0, 100, 9 или 109.ISDATE is deterministic only used with the CONVERT function, when the CONVERT style parameter is specified, and when style is not equal to 0, 100, 9, or 109. |
РазделTopic | ОписаниеDescription |
---|---|
FORMATFORMAT | Возвращает значение в указанных формате и культуре (не обязательно).Returns a value formatted with the specified format and optional culture. Для выполнения форматирования значения даты, времени и чисел с учетом локали в виде строк используется функция FORMAT.Use the FORMAT function for locale-aware formatting of date/time and number values as strings. |
Функции CAST и CONVERT (Transact-SQL)CAST and CONVERT (Transact-SQL) | Предоставляет сведения о преобразовании значений даты и времени в строковые литералы и обратно, а также в другие форматы даты и времени.Provides information about the conversion of date and time values to and from string literals, and other date and time formats. |
Написание инструкций Transact-SQL, адаптированных к международному использованиюWrite International Transact-SQL Statements | Предоставляет рекомендации относительно переносимости баз данных и приложений баз данных, использующих инструкции Transact-SQLTransact-SQL, с одного языка на другой или в многоязычную среду. Provides guidelines for portability of databases and database applications that use Transact-SQLTransact-SQL statements from one language to another, or that support multiple languages. |
Скалярные функции ODBC (Transact-SQL)ODBC Scalar Functions (Transact-SQL) | Предоставляет сведения о скалярных функциях ODBC, которые могут использоваться в инструкциях Transact-SQLTransact-SQL.Provides information about ODBC scalar functions available for use in Transact-SQLTransact-SQL statements. К ним относятся функции даты и времени ODBC.This includes ODBC date and time functions. |
AT TIME ZONE (Transact-SQL)AT TIME ZONE (Transact-SQL) | Обеспечивает преобразование часовых поясов.Provides time zone conversion. |
См. также разделSee also
Команда | Описание | ||
---|---|---|---|
%d | День месяца, число от 00 до 31. | ||
%e | День месяца, число от 0 до 31. | ||
%m | Месяц, число от 01 до 12. | ||
%c | Месяц, число от 1 до 12. | ||
%Y | Год, число, 4 цифры. | ||
%y | Год, число, 2 цифры. | ||
%j | День года, число от 001 до 366. | ||
%H | Час, число от 00 до 23. | ||
%k | Час, число от 0 до 23. | ||
%h | Час, число от 01 до 12. | ||
%I | Час, число от 01 до 12. | ||
%l | Час, число от 1 до 12. | ||
%i | Минуты, число от 00 до 59. | ||
%S | Секунды, число от 00 до 59. | ||
%s | Секунды, число от 00 до 59. | ||
%w | День недели (0 — воскресенье, 1 — понедельник). | ||
%W | Название дня недели по-английски. | ||
%a | Сокращенный день недели по-английски. | ||
%M | Название месяца по-английски. | ||
%b | Сокращенный месяц по-английски. | ||
%D | День месяца с английским суффиксом (1st, 2nd, 3rd и т.д.). | ||
%r | Время, 12-часовой формат (hh:mm:ss [AP]M). | ||
%T | Время, 24-часовой формат (hh:mm:ss). | ||
%p | AM или PM. | ||
%U | Неделя, где воскресенье считается первым днем недели, число от 00 до 53. | ||
%u | Неделя, где понедельник считается первым днем недели, число от 00 до 53. | ||
%V | Неделя, где воскресенье считается первым днем недели, число от 01 до 53. Используется с `%X’. | ||
%v | Неделя, где понедельник считается первым днем недели, число от 01 до 53. Используется с `%x’. | ||
%X | Год для недели, где воскресенье считается первым днем недели, число, 4 цифры. Используется с ‘%V’. | ||
%x | Год для недели, где воскресенье считается первым днем недели, число, 4 разряда. Используется с ‘%v’. | ||
%% | Символ `%’. |
id айди | name имя | date дата регистрации | new_date дата в новом формате |
---|---|---|---|
1 | Дима | 2010-03-01 12:01:02 | 01. 03.2010 |
2 | Петя | 2011-04-02 13:02:03 | 02.04.2011 |
3 | Вася | 2012-05-03 14:03:04 | 03.05.2012 |
Типы данных даты и времени
Столбцы данного типа используются для записи дат, времени и их комбинаций.
Типы данных DATETIME, DATE, TIME
Тип данных DATETIME используется для величин, содержащих информацию как о дате, так и о времени в формате ‘YYYY-MM-DD HH:MM:SS’
Тип данных DATE используется для величин с информацией только о дате в формате ‘YYYY-MM-DD’. Поддерживается диапазон величин от ‘1000-01-01’ до ‘9999-12-31’.
Тип данных TIME используется для хранения значений времени в формате HH.MM.SS[.ssss]
Тип данных YEAR
MySQL Server поддерживает однобайтный тип данных YEAR, предназначенный для представления значений года в формате YYYY. Диапазон возможных значений — от 1901 до 2155.
Величины типа YEAR могут быть заданы в различных форматах:
- Как четырехзначная строка в интервале значений от ‘1901’ до ‘2155’.
- Как четырехзначное число в интервале значений от 1901 до 2155.
- Как двухзначная строка в интервале значений от ’00’ до ’99’. Величины в интервалах от ’00’ до ’69’ и от ’70’ до ’99’ при этом преобразуются в величины YEAR в интервалах от 2000 до 2069 и от 1970 до 1999 соответственно.
- Как двухзначное число в интервале значений от 1 до 99. Величины в интервалах от 1 до 69 и от 70 до 99 при этом преобразуются в величины YEAR в интервалах от 2001 до 2069 и от 1970 до 1999 соответственно. Необходимо принять во внимание, что интервалы для двухзначных чисел и двухзначных строк несколько различаются, так как нельзя указать «ноль» непосредственно как число и интерпретировать его как 2000. Необходимо задать его как строку ‘0’ или ’00’, или же оно будет интерпретировано как 0000.
Недопустимые величины YEAR преобразуются в 0000.
Тип данных TIMESTAMP
Назначение типа данных timestamp в MS SQL Server и MySQL Server значительно отличается.В языке Transcat SQL, используемом в MS SQL Server тип данных, TIMESTAMP представляет собой автоматически сформированные уникальные двоичные числа. При произведении любых изменений в строке значение TIMESTAMP будет обновлено. Таким образом, столбец типа TIMESTAMP можно использовать, чтобы определить, было ли произведено изменение какого-либо значения в строке с момента ее последнего считывания. В таблице может быть только один столбец типа TIMESTAMP.
В MySQL Server тип столбца TIMESTAMP используется для автоматической записи текущих даты и времени при выполнении операций вставки или обновления. Допускается наличие нескольких столбцов типа TIMESTAMP в таблице, но в этом случае автоматически обновляется только первый из них. Столбец типа TIMESTAMP можно установить в значение, отличное от текущих даты и времени путем явного указания значения столбца при выполнении операций вставке и обновлении данных.
текущая дата и другие функции даты в времени
Пример 1. Сформировать список актеров старше 70 лет. Пишем следующий запрос:
SELECT FName, LName, BirthDate FROM ACTOR WHERE TIMESTAMPDIFF(YEAR, BirthDate, CURDATE()) > 70
В этом запросе вычисляется разница между текущей датой CURDATE() и датой рождения актёра BirthDate, содержащейся в таблице ACTOR. Для вычисления разницы применена функция TIMESTAMPDIFF(). Ключевое слово YEAR — задаёт единицу измерения — в годах интервала между датами. Вычисленное значение и результат его сравнения с числом 70 вполне пригодны в качестве условия выборки в секции WHERE. Следует учесть, что функция TIMESTAMPDIFF() существует лишь в MySQL. В других диалектах SQL для этого есть функция DATEDIFF, а для задания единицы измерения применяются различные ключевые слова в различных вариантах написания.
Для вычисления разницы дат можно использовать и оператор «минус». Это сделано в следующем примере.
Пример 2. Вывести список актеров, которые не задействованы в новых постановках (в постановках последних 3 лет). Использовать CURDATE(), NOT IN. Запрос будет следующим:
SELECT fname, lname FROM actor WHERE actor_id NOT IN(SELECT actor_id FROM team WHERE play_id IN(SELECT play_id FROM play WHERE YEAR(premieredate) — YEAR(CURDATE())В этом запросе задействована функция YEAR(). Аргументами её являются дата премьеры постановки premieredate из таблицы play и текущая дата. Для вычисления разницы использован оператор «минус». Он имеет больший приоритет по сравнению с оператором сравнения и поэтому выполняется первым. Вычисленнное выражение сравнивается с числом 3 и подходящие значения служат условием выборки из таблицы play, содержащей данные о постановках. Этот подзапрос — самый глубокий в «матрёшке» целого запроса. Подзапрос более высокого уровня из таблицы team, содержащей данные о ролях, выбирает идентификаторы актёров, с помощью предиката IN. Выбираются те актёры, которые участвовали в постановках трёх послежних лет. И, наконец, самый внешний запрос к таблице actor выбирает значения с отрицанием (NOT IN) значения предыдущего подзапроса.
Далее — пример использования соединения таблиц, среди которых из одной выбирается дата для вычисления разницы с текущей датой.
Пример 3. Сформировать список актеров с их стажем (в днях). Использовать CURDATE(), GROUP BY. Запрос будет следующим:
SELECT DISTINCT a.Actor_ID, a.FName, a.LName, CURDATE() — p1. PremiereDate AS ExpDays FROM Play p1 JOIN Team t1 ON p1.play_id = t1.play_id JOIN Actor a ON t1.actor_id = a.Actor_id WHERE t1.ACTOR_ID = a.Actor_ID ORDER BY ExpDays, a.Actor_ID DESC
В этом запросе разница между текущей датой CURDATE() и датой премьеры постановки PremiereDate из таблицы Play вычисляется как имя столбца в результирующей таблице. Поскольку эти даты имеют один и тот же формат, для вычисления разницы достаточно использовать оператор «минус». Разница вычислена. Но из таблицы Play невозможно напрямую «достучаться» до таблицы Actor, содержащей данные об актёрах. Поэтому используем соединение (JOIN) этой таблицы с таблицей Team, которая уже связана с таблицей Actor при помощи ключа Actor_ID. Соединение таблиц Team и Actor — второе в этой цепочке из трёх таблиц.
Составить SQL запросы с текущей датой самостоятельно, а затем посмотреть решения
CURDATE(), CURRENT_DATE(), CURRENT_DATE — возвращают текущую дату в формате ‘YYYY-MM-DD’ или YYYYDDMM в зависимости от того, вызывается функция в текстовом или числовом контексте.
CURTIME(), CURRENT_TIME(), CURRENT_TIME — возвращают текущее время суток в формате ‘hh-mm-ss’ или hhmmss в зависимости от того, вызывается функция в текстовом или числовом контексте.
NOW() — возвращает текущие дату и время формате ‘YYYY-MM-DD hh:mm:ss’ или YYYYDDMMhhmmss в зависимости от того, вызывается функция в текстовом или числовом контексте.
TIMEDIFF(param1, param2) — возвращает разницу между значениями времени, заданными параметрами param1 и param2.
DATEDIFF(param1, param2) — возвращает разницу между датами param1 и param2. Значения param1 и param2 могут иметь типы DATE или DATETIME, а при вычислении разницы используется лишь часть DATE.
PERIOD_DIFF(param1, param2) — возвращает разницу в месяцах между датами param1 и param2. Значения param1 и param2 могут быть представлены в числовом формате YYYYMM или YYMM.
TIMESTAMPDIFF(interval, param1, param2) — возвращает разницу между значениями датами param1 и param2. Значения param1 и param2 могут быть представлены в форматах ‘YYYY-MM-DD’ или ‘YYYY-MM-DD hh:mm:ss’. Единица измерения разницы задаётся параметром interval. Он может принимать значения FRAC_SECOND (микросекунды), SECOND (секунды), MINUTE (минуты), HOUR (часы), DAY (дни), WEEK (недели), MONTH (месяцы), QUARTER (кварталы), YEAR (годы).
ADDDATE(date, INTERVAL value) — возвращает дату, к которой прибавлено значение value. Ключевое слово INTERVAL обязательно следует в запросе, после него указывается значение value, а затем единицы измерения прибавляемого значения. Ими могут быть SECOND (секунды), MINUTE (минуты), HOUR (часы), MINUTE_SECOND (минуты и секунды), HOUR_MINUTE (часы и минуты), DAY_SECOND (дни, часы минуты и секунды), DAY_MINUTE (дни, часы и минуты), DAY_HOUR (дни и часы), YEAR_MONTH (годы и месяцы).
SUBDATE(date, INTERVAL value) — вычитает из величины даты date произвольный временной интервал и возвращает результат. Ключевое слово INTERVAL обязательно следует в запросе, после него указывается значение value, а затем единицы измерения вычитаемого значения. Возможные единицы измерения — те же, что и для функции ADDDATE().
SUBTIME(datetime, time) — вычитает из величины времени datetime вида ‘YYYY-MM-DD hh:mm:ss’ произвольно заданное значение времени time и возвращает результат.
PERIOD_ADD(period, N) — добавляет N месяцев к значению даты period. Значение period должно быть представлено в числовом формате ‘YYYYMM’ или ‘YYMM’.
TIMESTAMPADD(interval, param1, param2) — прибавляет к дате и времени суток param2 в полном или кратком формате временной интервал param1, единицы измерения которого заданы параметром interval. Возможные единицы измерения — те же, что и для функции TIMESTAMPDIFF().
DATE(datetime) — извлекает из значения даты и времени суток в формате DATETIME (‘YYYY-MM-DD hh:mm:ss’) только дату, отсекая часы, минуты и секунды.
TIME(datetime) — извлекает из значения даты и времени суток в формате DATETIME (‘YYYY-MM-DD hh:mm:ss’) только время суток, отсекая дату.
TIMESTAMP(param) — принимает в качестве аргумента дату и время суток в полном или кратком формате и возвращает полный вариант в формате DATETIME (‘YYYY-MM-DD hh:mm:ss’).
DAY(date), DAYOFMONTH(date) — принимают в качестве аргумента дату, и возвращают порядковый номер дня в месяце (от 1 до 31).
DAYNAME(date) — принимает в качестве аргумента дату, и возвращает день недели в виде полного слова на английском языке.
DAYOFWEEK(date) — принимает в качестве аргумента дату, и возвращает порядкоый номер дня недели от 1 (воскресенье) до 7 (суббота).
WEEKDAY(date) — принимает в качестве аргумента дату, и возвращает порядкоый номер дня недели от 0 (понедельник) до 6 (воскресенье).
WEEK(date) — принимает в качестве аргумента дату, и возвращает номер недели в году для этой даты от 0 до 53.
WEEKOFYEAR(datetime) — возвращает порядковый номер недели в году для даты datetime от 1 до 53.
MONTH(datetime) — возвращает числовое значение месяца года от 1 до 12 для даты datetime.
MONTHNAME(datetime) — возвращает строку с названием месяца для даты datetime.
QUARTER(datetime) — возвращает значение квартала от 1 до 4 для даты datetime, которая может быть передана в формате ‘YYYY-MM-DD’ или ‘YYYY-MM-DD hh:mm:ss’.
YEAR(datetime) — возвращает год от 1000 до 9999 для даты datetime.
DAYOFYEAR(date) — возвращает порядковый номер дня в году от 1 до 366 для даты date.
HOUR(datetime) — возвращает значение часа от 0 до 23 для времени datetime.
MINUTE(datetime) — возвращает значение минут от 0 до 59 для времени datetime.
SECOND(time) — возвращает количество секунд для времени суток time, которое задаётся либо в виде строки ‘hh:mm:ss’, либо числа hhmmss.
EXTRACT(type FROM datetime) — принимает дату и время суток datetime и возвращает часть, определяемую параметром type. Значениями параметра могут быть YEAR, MONTH, DAY, HOUR, MINUTE, SECOND.
TO_DAYS(date) — принимает дату date в кратком ‘YYYY-MM-DD’ или полном формате ‘YYYY-MM-DD hh:mm:ss’ и возвращает количество дней, прошедших с нулевого года.
FROM_DAYS(N) — принимает количество дней N, прошедших с нулевого года, и возвращает дату в формате ‘YYYY-MM-DD’.
UNIX_TIMESTAMP(), UNIX_TIMESTAMP(datetime) — если параметр не указан, то возвращает количество секунд, прошедших с 00:00 1 января 1970 года. Если параметр datetime указан (в кратком ‘YYYY-MM-DD’ или полном формате ‘YYYY-MM-DD hh:mm:ss’), то возвращает разницу в секундах между 00:00 1 января 1970 года и датой datetime.
FROM_UNIXTIME(unix_timestamp), FROM_UNIXTIME(unix_timestamp, format) — принимает количество секунд, прошедших с 00:00 1 января 1970 года и возвращает дату и время суток в виде строки ‘YYYY-MM-DD hh:mm:ss’ или в виде числа YYYYDDMMhhmmss в зависимости от того, вызвана функция в строковом или числовом контексте.
TIME_TO_SEC(time) — принимает время суток time в формате ‘hh:mm:ss’ и возвращает количество секунд, прошедших с начала суток.
SEC_TO_TIME(seconds) — принимает количество секунд seconds, прошедших с начала суток и возвращает время в формате ‘hh:mm:ss’ или hhmmss в зависимости от того, вызвана функция в строковом или числовом контексте.
MAKEDATE(year, dayofyear) — принимает год year, номер дня в году dayofyear и возвращает дату в формате ‘YYYY-MM-DD’.
MAKETIME(hour, minute, second) — принимает часы hour, минуты minute и секунды second и возвращает время суток в формате ‘hh:mm:ss’.
Поделиться с друзьями
Реляционные базы данных и язык SQL
База Данных MySQL Работа с датами
Даты SQL
Самая сложная часть при работе с датами заключается в том, чтобы убедиться, что формат даты, которую вы пытаетесь вставить, совпадает с форматом столбца Date в базе данных.
Пока ваши данные содержат только часть даты, ваши запросы будут работать должным образом. Однако, если часть времени участвует, она становится все более сложным.
Типы данных дат SQL
MySQL поставляется со следующими типами данных для хранения даты или значения даты/времени в базе данных:
- DATE — format YYYY-MM-DD
- DATETIME — format: YYYY-MM-DD HH:MI:SS
- TIMESTAMP — format: YYYY-MM-DD HH:MI:SS
- YEAR — format YYYY or YY
SQL Server поставляется со следующими типами данных для хранения даты или значения даты и времени в базе данных:
- DATE — format YYYY-MM-DD
- DATETIME — format: YYYY-MM-DD HH:MI:SS
- SMALLDATETIME — format: YYYY-MM-DD HH:MI:SS
- TIMESTAMP — format: a unique number
Примечание: Типы дат выбираются для столбца при создании новой таблицы в базе данных!
SQL работа с датами
Вы можете сравнить две даты легко, если нет времени компонент участие!
Предположим, что у нас есть следующая таблица «Orders»:
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 |
2 | Camembert Pierrot | 2008-11-09 |
3 | Mozzarella di Giovanni | 2008-11-11 |
4 | Mascarpone Fabioli | 2008-10-29 |
Теперь мы хотим выбрать записи с OrderDate «2008-11-11» из таблицы выше.
Мы используем следующую инструкцию SELECT:
SELECT * FROM Orders WHERE OrderDate=’2008-11-11′
Результирующий набор будет выглядеть так:
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 |
3 | Mozzarella di Giovanni | 2008-11-11 |
Теперь предположим, что таблица «Orders» выглядит так (Обратите внимание на компонент Time в столбце «OrderDate»):
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 13:23:44 |
2 | Camembert Pierrot | 2008-11-09 15:45:21 |
3 | Mozzarella di Giovanni | 2008-11-11 11:12:01 |
4 | Mascarpone Fabioli | 2008-10-29 14:56:59 |
Если мы используем ту же инструкцию SELECT, как указано выше:
SELECT * FROM Orders WHERE OrderDate=’2008-11-11′
Мы не получим результата! Это происходит потому, что запрос ищет только даты без временной части.
Совет: Чтобы ваши запросы были простыми и простыми в обслуживании, не допускайте временных компонентов в ваших датах!
MS SQL Server: Формат даты
Для вывода даты в формате DD.MM.YYYYSomeDate = CONVERT(VarChar(50), getdate(), 104)
Выведется текущая дата в указанном формате. Формат указывается цифрами, в данном случае 104.
Остальные значения:
SELECT CONVERT(varchar, getdate(), 2) — ‘yy.mm.dd’
SELECT CONVERT(varchar, getdate(), 3) — ‘dd/mm/yy’
SELECT CONVERT(varchar, getdate(), 4) — ‘dd.mm.yy’
SELECT CONVERT(varchar, getdate(), 5) — ‘dd-mm-yy’
SELECT CONVERT(varchar, getdate(), 6) — ‘dd mmm yy’
SELECT CONVERT(VarChar, GETDATE(), 101) — ‘mm/dd/yyyy’
SELECT CONVERT(VarChar, GETDATE(), 102) — ‘yyyy.mm.dd’
SELECT CONVERT(VarChar, GETDATE(), 103) — ‘dd/mm/yyyy’
SELECT CONVERT(VarChar, GETDATE(), 104) — ‘dd.mm.yyyy’
SELECT CONVERT(varchar, GETDATE(), 105) — ‘dd-mm-yyy’
SELECT CONVERT(varchar, GETDATE(), 111) — ‘yyyy/mm/dd’
SELECT CONVERT(varchar, GETDATE(), 112) — ‘yyyymmdd’
SELECT CONVERT(varchar,GETDATE(),108) ‘hh:mm:ss’
SELECT CONVERT(varchar,GETDATE(),114) ‘hh:mm:ss:mmm’
SELECT CONVERT(varchar,GETDATE(),113) ‘dd Mmm yyyy hh:mm:ss:mmm’
SELECT CONVERT(VarChar(50), GETDATE(), 100) ‘mmm dd yyyy mm:ss AM’
и еще:
SELECT CONVERT(varchar,GETDATE(),0)
Return Value = Jun 6 2007 11:07PM
SELECT CONVERT(varchar,GETDATE(),100)
Return Value = Jun 6 2007 11:07PM
SELECT CONVERT(varchar,GETDATE(),1)
Return Value = 06/06/07
SELECT CONVERT(varchar,GETDATE(),101)
Return Value = 06/06/2007
SELECT CONVERT(varchar,GETDATE(),2)
Return Value = 07. 06.06
SELECT CONVERT(varchar,GETDATE(),102)
Return Value = 2007.06.06
SELECT CONVERT(varchar,GETDATE(),3)
Return Value = 06/06/07
SELECT CONVERT(varchar,GETDATE(),103)
Return Value = 06/06/2007
SELECT CONVERT(varchar,GETDATE(),4)
Return Value = 06.06.07
SELECT CONVERT(varchar,GETDATE(),104)
Return Value = 06.06.2007
SELECT CONVERT(varchar,GETDATE(),5)
Return Value = 06-06-07
SELECT CONVERT(varchar,GETDATE(),105)
Return Value = 06-06-2007
SELECT CONVERT(varchar,GETDATE(),6)
Return Value = 06 Jun 07
SELECT CONVERT(varchar,GETDATE(),106)
Return Value = 06 Jun 2007
SELECT CONVERT(varchar,GETDATE(),7)
Return Value = Jun 06, 07
SELECT CONVERT(varchar,GETDATE(),107)
Return Value = Jun 06, 2007
SELECT CONVERT(varchar,GETDATE(),8)
Return Value = 23:38:49
SELECT CONVERT(varchar,GETDATE(),108)
Return Value = 23:38:49
SELECT CONVERT(varchar,GETDATE(),9)
Return Value = Jun 6 2007 11:39:17:060PM
SELECT CONVERT(varchar,GETDATE(),109)
Return Value = Jun 6 2007 11:39:17:060PM
SELECT CONVERT(varchar,GETDATE(),10)
Return Value = 06-06-07
SELECT CONVERT(varchar,GETDATE(),110)
Return Value = 06-06-2007
SELECT CONVERT(varchar,GETDATE(),11)
Return Value = 07/06/06
SELECT CONVERT(varchar,GETDATE(),111)
Return Value = 2007/06/06
SELECT CONVERT(varchar,GETDATE(),12)
Return Value = 070606
SELECT CONVERT(varchar,GETDATE(),112)
Return Value = 20070606
SELECT CONVERT(varchar,GETDATE(),13)
Return Value = 06 Jun 2007 23:40:14:577
SELECT CONVERT(varchar,GETDATE(),113)
Return Value = 06 Jun 2007 23:40:14:577
SELECT CONVERT(varchar,GETDATE(),14)
Return Value = 23:40:29:717
SELECT CONVERT(varchar,GETDATE(),114)
Return Value = 23:40:29:717
SELECT CONVERT(varchar,GETDATE(),20)
Return Value = 2007-06-06 23:40:51
SELECT CONVERT(varchar,GETDATE(),120)
Return Value = 2007-06-06 23:40:51
SELECT CONVERT(varchar,GETDATE(),21)
Return Value = 2007-06-06 23:41:10. 153
SELECT CONVERT(varchar,GETDATE(),121)
Return Value = 2007-06-06 23:41:10.153
SELECT CONVERT(varchar,GETDATE(),126)
Return Value = 2007-06-06T23:41:10.153
SELECT CONVERT(varchar,GETDATE(),131)
Return Value = 21/05/1428 11:41:10:153PM
Поля дат—ArcGIS Pro | Документация
Когда вы отображаете, вычисляете или выбираете по атрибутам даты, вы должны указать подходящий способ работы с полями дат в вашей базе данных.
Выбор и отображение значений поля даты с помощью инструмента Выбрать слой по атрибуту и аналогичных диалоговых окон построения запросов выполняется с использованием синтаксиса SQL. Синтаксис SQL, используемый для выбора и отображения значений поля даты, зависит от типа базы данных. Подробно это описано в данном разделе справочника по SQL.
Вычисление и отображение полей дат в атрибутивной таблице осуществляется в отличающемся формате и с другим синтаксисом. Это происходит потому, что калькулятор полей в ArcGIS Pro использует функции Python, и формат отображения в большей степени зависит от региональных настроек, а не от формата исходной базы данных системы.
Отображение дат
Дата сохраняется в поле для дат шейп-файла в формате yyyy-mm-dd. Формат даты в базе геоданных – дата/время (datetime) yyyy-mm-dd hh:mm:ss AM или PM. Настройки в вашей системе Windows определяют способ отображения дат в ArcGIS Pro – М/д /гг, ММ/дд/гг, гг/ММ/дд и т.д. ArcGIS Pro использует системный краткий формат даты (числовой) для отображения дат.
ArcGIS Pro следует настройкам Windows по формату дат.
Вычисление полей дат
При вычислении полей даты калькулятор полей использует функции datetime Python. Некоторые из этих функций поддерживают yyyy-mm-dd hh:mm:ss AM или PM. Но для шейп-файлов часть, относящаяся ко времени (time), отсекается от значения datetime. Например, значение datetime (дата/время) 2002-08-20 12:00:00 PM в шейп-файле сохраняется в виде 2002-08-20.
Вы можете использовать любую функцию datetime Python для вычислении даты. Если вы хотите вычислить атрибут, равный текущему времени, воспользуйтесь функцией today().
При вычислении дат также можно использовать две последние цифры года. Когда вы вычисляете дату, такую как date_field = dateserial(02,8,20) и указываете две цифры для года (в этом случае – 02), используются настройки вашей системы, которые определят век. Вы можете настроить эти параметры с помощью параметров региона и времени в Windows.
Выбор объектов с помощью поля дат
Вы можете построить запрос выбора SQL для полей даты, числовых полей и строковых полей с помощью инструмента геообработки Выбрать слой по атрибуту. Посредством запросов к набору данных на основе значения даты вы можете выбрать как одну, так и сразу несколько записей. Информационно-зависимый синтаксис обязателен для запрашиваемых дат.
Описание синтаксиса и особенностей запросов к датам см. в Справочном руководстве по SQL.
Отзыв по этому разделу?
Функции датыв SQL Server и MySQL
Даты SQL
Самое сложное при работе с датами — убедиться, что формат даты, которую вы пытаетесь вставить, соответствует формату столбца даты в базе данных.
Пока ваши данные содержат только часть даты, ваши запросы будут работать должным образом. Однако, если задействована временная часть, она становится сложнее.
Типы данных даты SQL
MySQL поставляется со следующими типами данных для хранения даты или значения даты / времени в базе данных:
- ДАТА — формат ГГГГ-ММ-ДД
- DATETIME — формат: YYYY-MM-DD HH: MI: SS
- TIMESTAMP — формат: ГГГГ-ММ-ДД ЧЧ: MI: SS
- ГОД — формат ГГГГ или ГГ
SQL Server поставляется со следующими типами данных для хранения даты или значения даты / времени в базе данных:
- ДАТА — формат ГГГГ-ММ-ДД
- DATETIME — формат: YYYY-MM-DD HH: MI: SS
- SMALLDATETIME — формат: ГГГГ-ММ-ДД ЧЧ: MI: SS
- TIMESTAMP — формат: уникальный номер
Примечание: Типы даты выбираются для столбца при создании новой таблицы в базе данных!
SQL Работа с датами
Вы можете легко сравнить две даты, если в них нет временной составляющей!
Предположим, у нас есть следующая таблица «Заказы»:
Идентификатор заказа | Название продукта | Дата заказа |
---|---|---|
1 | Geitost | 11-11-2008 |
2 | Камамбер Пьеро | 2008-11-09 |
3 | Моцарелла ди Джованни | 11-11-2008 |
4 | Маскарпоне Фабиоли | 29. 10.2008 |
Теперь мы хотим выбрать записи с OrderDate «2008-11-11» из приведенной выше таблицы.
Мы используем следующий оператор SELECT:
ВЫБЕРИТЕ * ИЗ заказов, ГДЕ OrderDate = ‘2008-11-11’
Результат будет выглядеть так:
Идентификатор заказа | Название продукта | Дата заказа |
---|---|---|
1 | Geitost | 11-11-2008 |
3 | Моцарелла ди Джованни | 11-11-2008 |
Теперь предположим, что таблица «Заказы» выглядит следующим образом (обратите внимание на компонент времени в столбце «Дата заказа»):
Идентификатор заказа | Название продукта | Дата заказа |
---|---|---|
1 | Geitost | 11-11-2008 13:23:44 |
2 | Камамбер Пьеро | 2008-11-09 15:45:21 |
3 | Моцарелла ди Джованни | 11-11-2008 11:12:01 |
4 | Маскарпоне Фабиоли | 2008-10-29 14:56:59 |
Если мы используем тот же оператор SELECT, что и выше:
ВЫБЕРИТЕ * ИЗ заказов, ГДЕ OrderDate = ‘2008-11-11’
мы не получим результата! Это связано с тем, что запрос ищет только даты без временной части.
Совет: Чтобы ваши запросы были простыми и легкими в обслуживании, не допускайте компонентов времени в ваших датах!
ТОЛЬКО ДАТА ФОРМАТЫ | ||
Формат # | Запрос | Образец |
---|---|---|
1 | выберите преобразование (varchar, getdate (), 1) | 30.12.06 |
2 | выберите преобразование (varchar, getdate (), 2) | 06.12.30 |
3 | выберите преобразование (varchar, getdate (), 3) | 30.12.06 |
4 | выберите преобразование (varchar, getdate (), 4) | 30.12.06 |
5 | выберите преобразование (varchar, getdate (), 5) | 30-12-06 |
6 | выберите преобразование (varchar, getdate (), 6) | 30 декабря 06 |
7 | выберите преобразование (varchar, getdate (), 7) | 30 декабря 06 г. |
10 | выберите преобразование (varchar, getdate (), 10) | 12-30-06 |
11 | выберите преобразование (varchar, getdate (), 11) | 12.06.30 |
12 | выберите преобразование (varchar, getdate (), 12) | 061230 |
23 | выберите преобразование (varchar, getdate (), 23) | 30.12.2006 |
101 | выберите преобразование (varchar, getdate (), 101) | 30.12.2006 |
102 | выберите преобразование (varchar, getdate (), 102) | 2006.12.30 |
103 | выберите преобразование (varchar, getdate (), 103) | 30 декабря 2006 г. |
104 | выберите преобразование (varchar, getdate (), 104) | 30.12.2006 |
105 | выберите преобразование (varchar, getdate (), 105) | 30-12-2006 |
106 | выберите преобразование (varchar, getdate (), 106) | 30 декабря 2006 г. |
107 | выберите преобразование (varchar, getdate (), 107) | 30 декабря 2006 г. |
110 | выберите преобразование (varchar, getdate (), 110) | 30.12.2006 |
111 | выберите преобразование (varchar, getdate (), 111) | 30/12/30 2006 |
112 | выберите преобразование (varchar, getdate (), 112) | 20061230 |
ТОЛЬКО ВРЕМЯ ФОРМАТИРУЕТ | ||
8 | выберите преобразование (varchar, getdate (), 8) | 00:38:54 |
14 | выберите преобразование (varchar, getdate (), 14) | 00: 38: 54: 840 |
24 | выберите преобразование (varchar, getdate (), 24) | 00:38:54 |
108 | выберите преобразование (varchar, getdate (), 108) | 00:38:54 |
114 | выберите преобразование (varchar, getdate (), 114) | 00: 38: 54: 840 |
ФОРМАТ ДАТЫ И ВРЕМЕНИ | ||
0 | выберите преобразование (varchar, getdate (), 0) | 12 декабря 2006 г. 00:38 |
9 | выберите преобразование (varchar, getdate (), 9) | 30 декабря 2006 г. 12:38: 54: 840AM |
13 | выберите преобразование (varchar, getdate (), 13) | 30 декабря 2006 г. 00: 38: 54: 840AM |
20 | выберите преобразование (varchar, getdate (), 20) | 2006-12-30 00:38:54 |
21 | выберите преобразование (varchar, getdate (), 21) | 30 декабря 2006 г., 00:38:54.840 |
22 | выберите преобразование (varchar, getdate (), 22) | 30.12.06 00:38:54 |
25 | выберите преобразование (varchar, getdate (), 25) | 2006-12-30 00: 38: 54.840 |
100 | выберите преобразование (varchar, getdate (), 100) | 30 декабря 2006 г. 00:38 |
109 | выберите преобразование (varchar, getdate (), 109) | 30 декабря 2006 г. 12:38: 54: 840AM |
113 | выберите преобразование (varchar, getdate (), 113) | 30 декабря 2006 г. 00: 38: 54: 840 |
120 | выберите преобразование (varchar, getdate (), 120) | 2006-12-30 00:38:54 |
121 | выберите преобразование (varchar, getdate (), 121) | 30 декабря 2006 г., 00:38:54.840 |
126 | выберите преобразование (varchar, getdate (), 126) | 2006-12-30T00: 38: 54.840 |
127 | выберите преобразование (varchar, getdate (), 127) | 2006-12-30T00: 38: 54.840 |
ИСЛАМСКИЙ КАЛЕНДАРЬ ДАТЫ | ||
130 | выберите преобразование (nvarchar, getdate (), 130) | |
131 | выберите преобразование (nvarchar, getdate (), 131) | 12.10.14 27 12:38: 54: 840 AM |
| | | ||
Стандарт : U. S.A. |
| | ||
Стандартный : ANSI |
| | ||
Стандартный : британский / французский |
| | ||
Стандартный : немецкий |
| | ||
Стандартный : итальянский |
| | ||
Стандарт : сокращенное название месяца |
| | ||
Стандарт : сокращенное название месяца |
| | ||
Стандарт : 24 часа |
| | ||
Стандарт : по умолчанию + миллисекунды |
| | ||
Стандарт : США |
| | ||
Стандарт : ЯПОНИЯ |
| | ||
Стандарт : ISO |
| | ||
Стандарт: Европа по умолчанию + миллисекунды |
| | ||
Стандарт: 24-часовое время с миллисекундами |
| | ||
По умолчанию: Канонический ODBC |
| | ||
Стандартный : канонический ODBC с миллисекундами |
| | ||
Стандарт : США с временем AM / PM |
| | ||
|
| | ||
|
| | ||
|
| | ||
Стандарт : По умолчанию |
| | ||
Стандарт : США |
| | ||
Стандарт : ANSI |
| | ||
Стандартный : британский / французский |
| | ||
Стандарт : немецкий |
| | ||
Стандартный : итальянский |
| | ||
Стандарт : сокращенное название месяца |
| | ||
Стандарт : сокращенное название месяца |
| | ||
Стандарт : 24 часа |
| | ||
Стандарт : по умолчанию + миллисекунды |
| | ||
Стандарт: США |
| | ||
Стандарт : ЯПОНИЯ |
| | ||
Стандарт : ISO |
| | ||
Стандарт: Европа по умолчанию + миллисекунды |
| | ||
Стандарт: 24-часовое время с миллисекундами |
| | ||
По умолчанию: Канонический ODBC |
| | ||
Стандарт: Канонический ODBC с миллисекундами |
| | ||
Стандарт : ISO8601 |
| | ||
Стандарт : исламская дата / дата хиджры |
| |
Преобразование формата даты в формат ДД / МММ / ГГГГ в SQL Server
Уже существует несколько ответов и типов форматирования для SQL server 2008. Но этот метод несколько неоднозначен, и вам будет сложно запомнить число, соответствующее определенному формату даты. Поэтому в следующих версиях SQL-сервера есть вариант получше.
Если вы используете SQL Server 2012 или более поздней версии, вам следует использовать функцию Format ()
ФОРМАТ (значение; формат [, язык и региональные параметры])
С опцией культуры вы можете указать дату в соответствии с вашими зрителями.
ОБЪЯВИТЬ @d DATETIME = '01.10.2011';
ВЫБЕРИТЕ ФОРМАТ (@d, 'd', 'en-US') AS 'US English Result'
, FORMAT (@d, 'd', 'en-gb') AS 'UK English Result'
, FORMAT (@d, 'd', 'de-de') КАК 'Немецкий результат'
, FORMAT (@d, 'd', 'zh-cn') AS 'Результат на упрощенном китайском (КНР)';
ВЫБЕРИТЕ ФОРМАТ (@d, 'D', 'en-US') AS 'US English Result'
, FORMAT (@d, 'D', 'en-gb') AS 'UK English Result'
, FORMAT (@d, 'D', 'de-de') КАК 'Немецкий результат'
, FORMAT (@d, 'D', 'zh-cn') AS 'Китайский (упрощенный КНР) результат';
Английский (США) Результат Великобритания Английский Результат Немецкий результат Упрощенный китайский (КНР) Результат
---------------- ----------------------------- ----- -------- -------------------------------------
01. 10.2011 10.01.2011 01.10.2011 2011/10/1
Результат на английском языке в США Результат на английском языке в Великобритании Результат на немецком языке Результат на китайском (упрощенный КНР)
---------------------------- ---------------------- ------- ----------------------------- -------------- -------------------------
Суббота, 1 октября 2011 г., 1 октября 2011 г. Самстаг, 1 октября 2011 г. 10 1
Для решения OP мы можем использовать следующий формат, который уже упоминался @Martin Smith:
FORMAT (GETDATE (), 'дд / МММ / гггг', 'en-us')
Некоторые примеры форматов даты:
Если вам нужны другие форматы дат SQL-сервера, посетите:
- Пользовательский формат даты и времени
- Стандартный формат даты и времени
Шпаргалка по формату даты SQL Server
В MS SQL Server вы можете использовать функцию CONVERT ()
для преобразования выражения из одного типа данных в другой тип данных. Когда дело доходит до преобразования значения datetime в символ, существует множество стилей форматирования для вывода.
В этом посте мы собираемся представить все форматы даты, а также соответствующий оператор CONVERT ()
в SQL Server.
Общий синтаксис для преобразования значения datetime или smalldatetime в символ:
ВЫБРАТЬ КОНВЕРТ (VARCHAR (n), GETDATE (), стиль)
И стиль даты и времени можно выбрать из списка ниже:
Стиль | Стандартный | Заявление CONVERT | Выход |
---|---|---|---|
100 | По умолчанию для datetime и smalldatetime | ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (20), GETDATE (), 100) | пн дд гггг чч: miAM (или PM) |
101 | U.С. | ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (10), GETDATE (), 101) КАК [ММ / ДД / ГГГГ] | мм / дд / гггг |
102 | ANSI | ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (10), GETDATE (), 102) AS [ГГГГ. ММ.ДД] | гггг.мм.дд |
103 | британский / французский | ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (10), GETDATE (), 103) КАК [ДД / ММ / ГГГГ] | дд / мм / гггг |
104 | Немецкий | ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (10), GETDATE (), 104) AS [DD.ММ.ГГГГ] | дд.мм.гггг |
105 | Итальянский | ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (10), GETDATE (), 105) КАК [ДД-ММ-ГГГГ] | дд-мм-гггг |
106 | – | ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (11), GETDATE (), 106) КАК [ДД МЕС ГГГГ] | дд пн гггг |
107 | – | ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (12), GETDATE (), 107) AS [Пн ДД, ГГГГ] | пн дд, гггг |
108 | – | ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (8), GETDATE (), 108) | чч: миля: сс |
109 | По умолчанию + миллисекунды | ВЫБРАТЬ КОНВЕРТ (VARCHAR (26), GETDATE (), 109) | пн дд гггг чч: ми: сс: мммAM (или PM) |
110 | США | ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (10), GETDATE (), 110) КАК [ММ-ДД-ГГГГ] | мм-дд-гггг |
111 | ЯПОНИЯ | ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (10), GETDATE (), 111) КАК [ГГГГ / ММ / ДД] | гггг / мм / дд |
112 | ISO | ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (8), GETDATE (), 112) КАК [ГГГГММДД] | ггггммдд |
113 | Европа по умолчанию + миллисекунды | ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (24), GETDATE (), 113) | дд пн гггг чч: ми: сс: ммм (24 ч) |
114 | – | ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (12), GETDATE (), 114) КАК [ЧЧ: МИ: СС: МММ (24Ч)] | чч: ми: сс: ммм (24 ч) |
120 | ODBC канонический | ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (19), GETDATE (), 120) | гггг-мм-дд чч: ми: сс (24ч) |
121 | Канонический ODBC (с миллисекундами) по умолчанию для времени, даты, datetime2 и datetimeoffset | ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (23), GETDATE (), 121) | гггг-мм-дд чч: ми: сс. ммм (24ч) |
126 | ISO8601 | ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (23), GETDATE (), 126) | гггг-мм-ддThh: mi: ss.mmm (без пробелов) |
130 | хиджры | ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (26), GETDATE (), 130) | дд пн гггг чч: ми: сс: мммAM |
131 | хиджра | ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (25), GETDATE (), 131) | дд / мм / гггг чч: ми: сс: мммAM |
Нужен хороший инструмент с графическим интерфейсом для MS SQL Server? Попробуйте TablePlus, современный собственный инструмент для нескольких баз данных, включая SQL Server, MySQL, PostgreSQL, SQLite и т. Д.И его можно использовать бесплатно столько, сколько вам нужно.
Загрузите TablePlus для Mac .
Не на Mac? Загрузите TablePlus для Windows .
В Linux? Загрузить TablePlus для Linux
Требуется быстрое редактирование на ходу? Загрузите TablePlus для iOS .
Как отформатировать дату в T-SQL
База данных:
Операторы:
CONVERT (), FORMAT ()Задача:
Вы хотите отображать значение даты в другом формате в SQL Server.
Пример:
В нашей базе данных есть таблица с именем company
с данными в столбцах id (первичный ключ), name и start_date .
id | имя | start_date |
---|---|---|
1 | Lisa Bank | 2019-01-20 |
2 | Кредитно-финансовый институт | 2018-03-14 |
3 | Williams Holding | 2019-10-28 |
Для каждой компании давайте преобразуем дату начала в новый формат, «ГГГГ / ММ / ДД», где ГГГГ — год из 4 цифр, ММ — это месяц с двумя цифрами, а DD — день с двумя цифрами.
Решение 1:
Мы будем использовать функцию CONVERT ()
. Вот запрос, который вы должны написать:
ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (NVARCHAR; начальная_дата; 111) КАК новая_дата ОТ компании;
Вот результат:
имя | start_date |
---|---|
Lisa Bank | 2019/01/20 |
Кредитно-финансовый институт | 2018/03/14 |
Williams Holding | 2019/10 / 28 |
Обсуждение:
Используйте функцию CONVERT ()
, чтобы изменить формат даты из заданного столбца или выражения.
Эта функция принимает три аргумента:
- Новый тип данных (в нашем примере NVARCHAR).
- Выражение или имя столбца, содержащее дату для форматирования (в нашем примере столбец
start_date
). - Необязательный код стиля в виде целого числа. (В нашем примере стиль «111» отображает дату с помощью косой черты для разделения частей.)
В таблице ниже представлены наиболее популярные коды стиля даты:
код | описание |
---|---|
101 | 30.11.2019 |
102 | 2019.11.30 |
103 | 30.11.2019 |
104 | 30.11.2019 |
105 | 30-11-2019 |
110 | 30.11.2019 |
111 | 30.11.2019 |
Полный список стилей форматирования можно найти в документации T-SQL.
Приведенный выше запрос изменил формат даты Lisa Bank 2019-01-20 на строку, содержащую дату «2019/01/20».
Решение 2:
В SQL Server 2012 и более поздних версиях вы можете использовать функцию FORMAT ()
для изменения форматов даты и времени. Используйте символы ниже, чтобы указать желаемый формат:
образец | описание |
---|---|
dd | день в диапазоне 01-31 |
MM | месяц в диапазоне 01-12 |
гг | год из 2 цифр |
гггг | год из 4 цифр |
HH | час в диапазоне 00-23 |
мм | минут в диапазоне 00-59 |
сс | секунды в диапазоне 00-59 |
Вот запрос, который можно написать с помощью FORMAT ():
ВЫБРАТЬ FORMAT (start_date, ‘yyyy-MM-dd’) КАК новая_дата ОТ компании;
Первый аргумент — это значение типа datetime / date / time для переформатирования.Вторая — это строка, содержащая образец нового формата. Эта функция возвращает тип данных NVARCHAR. Используйте FORMAT ()
, если вы работаете на SQL Server 2012 или более поздней версии и хотите преобразовать дату / время в строки, содержащие отформатированные даты / время.
SQL DATE Format — форматирование даты SQL Server с помощью Convert, Format
В этой статье мы покажем вам, как выполнить форматирование SQL DATE или форматирование даты и времени SQL Server на примере.
Пример преобразования формата даты SQL
Прежде чем перейти к практическому примеру, позвольте мне объяснить вам список доступных форматов даты преобразования в Sql Server.Для этой демонстрации мы собираемся написать различные запросы формата даты SQL, используя функции CONVERT и FORMAT. Функция ПРЕОБРАЗОВАТЬ предоставляет различные стили форматирования для форматирования даты и времени.
Без века (гг) | С веком (гггг) | Ввод / вывод | Стандартный |
---|---|---|---|
— | от 0 до 100 | пн дд гггг чч: мили AM (или PM) | Значение по умолчанию для datetime и smalldatetime |
1 | 101 | 1 = мм / дд / гг 101 = мм / дд / гггг | U. С. |
2 | 102 | 2 = гг.мм.дд 102 = гггг.мм.дд | ANSI |
3 | 103 | 3 = дд / мм / гг 103 = дд / мм / гггг | Британский / французский |
4 | 104 | 4 = дд.мм.гг 104 = дд.мм.гггг | Немецкий |
5 | 105 | 5 = дд-мм-гг 105 = дд-мм-гггг | Итальянский |
6 | 106 | 6 = дд мес гг 106 = дд мес гггг | — |
7 | 107 | 7 = пн дд, гг 107 = пн дд, гггг | — |
8 | 108 | чч: ми: сс | — |
— | 9 или 109 | пн дд гггг чч : mi: ss: mmmmAM (или PM) | По умолчанию + миллисекунды |
10 | 110 | 10 = мм-дд-гг 110 = мм-дд-гггг | США |
11 | 111 | 11 = гг / мм / дд 111 = гггг / мм / дд | ЯПОНИЯ |
12 | 112 | 12 = ггммдд 112 = ггггммдд | ISO |
— | 13 или 113 | дд мон гггг чч: ми: сс: ммм (24 ч) | Европа По умолчанию + миллисекунда |
14 | 114 | чч: ми : ss: mmm (24h) | — |
— | 20 or 120 | yyyy-mm-dd hh: mi: ss (24h) | ODBC canonical |
— | 21 or 121 | гггг-мм-дд чч: ми: сс. mmm (24h) | Канонический ODBC с миллисекундами. Это значение по умолчанию для времени, даты, datetime2 и datetimeoffset |
— | 126 | гггг-мм-ддThh: mi: ss.mmm (без пробелов) | ISO8601 |
— | 127 | гггг-мм-ддThh: mi: ss.mmmZ (без пробелов) | ISO8601 с часовым поясом Z |
— | 130 | дд мон гггг чч: ми: сс: ммAM | Hijri |
— | 131 | дд / мм / гггг чч: ми: сс: мммAM | Hijri |
Пример формата даты преобразования SQL
В этом примере SQL мы собираемся использовать функцию CONVERT для GETDATE (), чтобы вернуть дату в разных форматах.
- Использование функции CONVERT для формата даты SQL Server ВЫБРАТЬ CONVERT (VARCHAR (20), GETDATE ()) AS 'Результат 1'; ВЫБРАТЬ CONVERT (VARCHAR (20), GETDATE (), 0) AS 'Результат 2'; ВЫБРАТЬ CONVERT (VARCHAR (20), GETDATE (), 100) AS 'Результат 3'; ВЫБРАТЬ CONVERT (VARCHAR (20), GETDATE (), 1) AS 'Результат 4'; ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (20), GETDATE (), 101) AS 'Результат 5'; ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (20), GETDATE (), 2) AS 'Результат 6'; ВЫБРАТЬ CONVERT (VARCHAR (20), GETDATE (), 102) AS 'Результат 7';
Преобразование формата SQL DATE, пример 2
Этот пример запроса охватывает еще несколько форматов даты в функции преобразования
.- Использование функции CONVERT для формата даты SQL Server ВЫБРАТЬ CONVERT (VARCHAR (20), GETDATE (), 3) AS 'Результат 8'; ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (20), GETDATE (), 103) AS 'Результат 9'; ВЫБРАТЬ CONVERT (VARCHAR (20), GETDATE (), 4) AS 'Результат 10'; ВЫБРАТЬ CONVERT (VARCHAR (20), GETDATE (), 104) AS 'Результат 11'; ВЫБРАТЬ CONVERT (VARCHAR (20), GETDATE (), 5) AS 'Результат 12'; ВЫБРАТЬ CONVERT (VARCHAR (20), GETDATE (), 105) AS 'Результат 13'; ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (20), GETDATE (), 6) AS 'Результат 14'; ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (20), GETDATE (), 106) AS 'Результат 15';
В этом примере запроса мы показываем несколько других форматов даты в функции преобразования:
- Использование функции CONVERT для формата даты SQL Server ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (20), GETDATE (), 7) AS 'Результат 16'; ВЫБРАТЬ CONVERT (VARCHAR (20), GETDATE (), 107) AS 'Результат 17'; ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (20), GETDATE (), 8) AS 'Результат 18'; ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (20), GETDATE (), 108) AS 'Результат 19'; ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (20), GETDATE (), 9) AS 'Результат 20'; ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (20), GETDATE (), 109) AS 'Результат 21'; ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (20), GETDATE (), 10) AS 'Результат 22'; ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (20), GETDATE (), 110) AS 'Результат 23';
Другой формат даты преобразования
- Использование функции CONVERT для формата даты SQL Server --Использование функции CONVERT для формата даты SQL Server ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (20), GETDATE (), 11) AS 'Результат 24'; ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (20), GETDATE (), 111) AS 'Результат 25'; ВЫБРАТЬ CONVERT (VARCHAR (20), GETDATE (), 12) AS 'Результат 26'; ВЫБРАТЬ CONVERT (VARCHAR (20), GETDATE (), 112) AS 'Результат 27'; ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (20), GETDATE (), 113) AS 'Результат 28'; ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (20), GETDATE (), 14) AS 'Результат 29'; ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (20), GETDATE (), 114) AS 'Результат 30'; ВЫБРАТЬ CONVERT (VARCHAR (20), GETDATE (), 20) AS 'Результат 31';
Ниже приводится список оставшихся опций форматирования, доступных в функции преобразования для формата даты.
- Использование CONVERT для форматирования даты в SQL Server ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (35), GETDATE (), 21) AS 'Результат 32'; ВЫБРАТЬ CONVERT (VARCHAR (35), GETDATE (), 126) AS 'Результат 33'; ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (VARCHAR (35), GETDATE (), 127) AS 'Результат 34'; ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (NVARCHAR (35), GETDATE (), 130) AS 'Результат 35'; ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (NVARCHAR (35), GETDATE (), 131) AS 'Результат 36';
Формат даты SQL с использованием функции FORMAT
В этом примере мы собираемся использовать функцию FORMAT для GETDATE (), чтобы вернуть дату в разных форматах.Я предлагаю вам обратиться к строкам стандартного формата даты и времени, чтобы понять форматы строк, которые мы использовали в этом примере.
- Использование функции FORMAT для формата даты SQL Server ВЫБЕРИТЕ ФОРМАТ (GETDATE (), 'd', 'en-US') как 'Результат 1' ВЫБЕРИТЕ ФОРМАТ (GETDATE (), 'D', 'en-US') как 'Результат 2' ВЫБЕРИТЕ ФОРМАТ (GETDATE (), 'f', 'en-US') как 'Результат 3' ВЫБЕРИТЕ ФОРМАТ (GETDATE (), 'F', 'en-US') как 'Результат 4' ВЫБЕРИТЕ ФОРМАТ (GETDATE (), 'g', 'en-US') как 'Результат 5' ВЫБЕРИТЕ ФОРМАТ (GETDATE (), 'G', 'en-US') как 'Результат 6' ВЫБЕРИТЕ ФОРМАТ (GETDATE (), 'm', 'en-US') как 'Результат 7' ВЫБЕРИТЕ ФОРМАТ (GETDATE (), 'M', 'en-US') AS 'Результат 8'
Ниже приведен список остальных форматов, доступных в функции формата для формата даты.
- Использование функции FORMAT для формата даты SQL Server ВЫБЕРИТЕ ФОРМАТ (GETDATE (), 'O', 'en-US') как 'Результат 9' ВЫБЕРИТЕ ФОРМАТ (GETDATE (), 'R', 'en-US') как 'Результат 10' ВЫБЕРИТЕ ФОРМАТ (GETDATE (), 's', 'en-US') как 'Результат 11' ВЫБЕРИТЕ ФОРМАТ (GETDATE (), 'S', 'en-US') как 'Результат 12' ВЫБЕРИТЕ ФОРМАТ (GETDATE (), 't', 'en-US') как 'Результат 13' ВЫБЕРИТЕ ФОРМАТ (GETDATE (), 'T', 'en-US') как 'Результат 14' ВЫБЕРИТЕ ФОРМАТ (GETDATE (), 'u', 'en-US') как 'Результат 15' ВЫБЕРИТЕ ФОРМАТ (GETDATE (), 'U', 'en-US') КАК 'Результат 16' ВЫБЕРИТЕ ФОРМАТ (GETDATE (), 'Y', 'en-US') AS 'Результат 17'
Формат даты с использованием функций даты и времени
Здесь мы собираемся использовать функции ДАТА и ВРЕМЯ, которые доступны для форматирования даты и времени в SQL Server, чтобы вернуть дату в разных форматах.
- Использование различных функций даты и времени для формата даты SQL Server ВЫБЕРИТЕ ДАННЫЕ (2017, 06, 14) КАК «Результат 1»; ВЫБЕРИТЕ ДАННЫЕ ЗНАЧЕНИЯ (2017, 06, 14, 11, 57, 53, 847) КАК «Результат 3»; ВЫБЕРИТЕ EOMONTH ('20170614') как «Результат 3»;
Формат даты с использованием функций преобразования
В этом примере мы собираемся использовать функции преобразования сервера Sql для форматирования даты. А функции разговора — это PARSE, TRY_PARSE, CONVERT и TRY_CONVERT. Мы используем эти функции для разных дат, чтобы возвращать дату в разных форматах.
- Использование различных функций преобразования для формата даты SQL Server ВЫБЕРИТЕ PARSE ('среда, 14 июня 2017 г.' КАК ДАТА ВРЕМЕНИ ИСПОЛЬЗУЕТСЯ 'en-US') КАК 'Результат 4'; ВЫБЕРИТЕ TRY_PARSE ('среда, 14 июня 2017 г.' AS DATETIME USING 'en-US') AS 'Result 5'; ВЫБРАТЬ ПРЕОБРАЗОВАТЬ (ДАТАВРЕМЯ2, СИСДАТЕТИММ ()) КАК 'Результат 6'; ВЫБЕРИТЕ TRY_CONVERT (DATETIME2, '14.06.2017 11:57:53 AM') как 'Результат 7';
Пользователи, которые хотят сохранить форматы даты, предоставляемые функцией ПРЕОБРАЗОВАНИЕ на своих мобильных телефонах, могут использовать следующее изображение:
.