Понякога се занимава с дата и час в SQL може да бъде доста сложно. Въпреки че датата и часът всъщност са напълно различни типове данни, те често се обединяват в тип данни за дата и час. SQL дати и часове сами са доста прости, но обединяването на двете може да бъде една от най-болезнените задачи. В тази статия ще научите подробно за типа дата и час на SQL.
- Какъв е типът данни DateTime?
- datetime Описание
- Преобразуване на други типове дата и час в тип данни за дата и час
Какъв е типът данни за дата и час?
В SQL, Време за среща типът дата се използва за стойности, които съдържат както дата, така и час. Microsoft го определя като a дата, комбинирана с час от деня с частични секунди, който се основава на 24-часов часовник .
По-конкретно SQL, има много типове данни, които комбинират представяне на дата и час, което прави нещата по-сложни. Най-широко използваният е DATETIME, тъй като присъства от по-ранните версии на SQL. SQL извлича и показва стойности на DATETIME във формат „ГГГГ-ММ-ДД чч: мм: сс“. Поддържаният диапазон е от „1753-01-01 00:00:00“ до „9999-12-31 23: 59: 59.997“. Нека разгледаме типа дата и час по-подробно.
datetime Описание
Моля, проверете следната таблица, за да научите повече за типа дата и час на SQL.
Имот | Стойност |
Синтаксис | Време за среща |
Употреба | ДЕКЛАРИРАТЕ @MyDatetimeВреме за среща СЪЗДАЙТЕ ТАБЛИЦА Таблица1 (Колона1Време за среща) |
Формат | ‘ГГГГ-ММ-ДД чч: мм: ss.nnn |
Времеви интервал | 00:00:00 до 23: 59: 59.997 |
Диапазони на елементите |
|
Размер на съхранението подниз в пример на SQL сървър | 8 байта |
Стойност по подразбиране | 1900-01-01 00:00:00 |
Календар | Григориански (Включва пълния набор от години.) |
Забележка: Подробностите по-горе се отнасят за типа дата и дата в Transact-SQL иSQL Server.
Това е Време за среща в SQL. Но какво бихте направили, ако имате друга дата итипове време и трябва да ги конвертирате в Време за среща Тип?
Преобразуване на други типове дата и час в тип данни за дата и час
The Време за среща тип данни в SQL включва датата и часа, с 3-цифрена частична секунда. Точността му е закръглена до стъпки от .000, .003 или .007 секунди. Така че, когато конвертирате a дата или време стойности към Време за среща , към стойността се добавя допълнителна информация. Това е така, защото Време за среща типът данни съдържа както дата, така и час. Тази част от статията обяснява какво се случва, когато други дата и час типовете данни се преобразуват в Време за среща тип данни.
Пример1: Неявно преобразуване между дата и дата и час
ДЕКЛАРИРАНЕ @date date = '2020-12-01' ДЕКЛАРИРАНЕ @datetime datetime = @date
Резултат
@datetime @date ------------------------- ---------- 2016-12-21 00: 00: 00.000 2016 -12-21
Пример2: Неявно преобразуване между дата и час с помощта на CAST ()
ОБЯВЕТЕ @thedate date = '2020-12-01' SELECT @thedate AS 'date', CAST (@thedate AS datetime) AS 'datetime'
Резултат
@datetime @date ------------------------- ---------- 2016-12-21 00: 00: 00.000 2016 -12-21
Пример3: Неявно преобразуване от малко време към дата и час
Когато преобразуването е от s malldatetime тип, часовете и минутите се копират. Секундите и дробните секунди са зададени на стойност 0. Следващият код показва резултатите от преобразуването на a smalldatetime стойност към a Време за среща стойност.
DECLARE @smalldatetime smalldatetime = '2020-12-01 12:32' DECLARE @datetime datetime = @smalldatetime SELECT @datetime AS '@datetime', @smalldatetime AS '@smalldatetime'
Резултат
@datetime @smalldatetime ------------------------- --------------------- - 2016-12-01 12: 32: 00.000 2016-12-01 12:32:00
По същия начин можете да конвертирате други Време за среща типове към време за данни въведете или неявно, или използвайки гласове () и конвертиране () методи. За справка вижте таблицата по-долу, за да се запознаете с форматите на всички типове дата и час.
Тип данни | Пример |
време | 12:35:29. 1234567 |
дата | 2007-05-08 |
smalldatetime | 2007-05-08 12:35:00 |
Време за среща | 2007-05-08 12: 35: 29.123 |
datetime2 | 2007-05-08 12:35:29. 1234567 |
datetimeoffset | 2007-05-08 12: 35: 29.1234567 +12: 15 |
С това стигнахме до края на тази статия. Надявам се да сте наясно със съдържанието, обсъдено тук. Уверете се, че практикувате възможно най-много и връщате опита си.
Ако искате да научите повече за MySQL и опознайте тази релационна база данни с отворен код, след това разгледайте нашата което се предлага с обучение под ръководството на инструктори на живо и опит в реалния живот на проекти. Това обучение ще ви помогне да разберете MySQL задълбочено и ще ви помогне да постигнете майсторство по темата.
Имате въпрос към нас? Моля, споменете го в раздела за коментари на тази статия „Процедури в SQL“ и ние ще се свържем с вас.