В SQL Server 2008 есть несколько новых типов данных даты и времени, которые предлагают улучшенную функциональность по сравнению с предыдущими версиями. Эти типы данных позволяют более точно хранить и манипулировать значениями даты и времени. Давайте ближе рассмотрим эти типы данных и их особенности.
Типы данных даты и времени
В SQL Server 2008 есть шесть типов данных даты и времени:
- datetime: Хранит как компоненты дату, так и время, в диапазоне с 1 января 1753 года по 31 декабря 9999 года с точностью до 3,33 миллисекунды.
- smalldatetime: Хранит как компоненты дату, так и время, в диапазоне с 1 января 1900 года по 6 июня 2079 года с точностью до 1 минуты.
- date: Хранит только компонент даты без компонента времени, в диапазоне с 1 января 0001 года по 31 декабря 9999 года с точностью до 1 дня.
- time: Хранит только компонент времени (без компонента даты), в диапазоне с 00:00:00.000000 до 23:59:59.9999999 с точностью до 100 наносекунд (7 десятичных знаков).
- datetime2: Хранит как компоненты дату, так и время, в диапазоне с 1 января 0001 года по 31 декабря 9999 года с точностью до 100 наносекунд.
- datetimeoffset: Хранит как компоненты дату, время и смещение часового пояса, в диапазоне с 1 января 0001 года по 31 декабря 9999 года с точностью до 100 наносекунд. Смещение часового пояса может быть в диапазоне от -14:00 до +14:00.
Эти типы данных предоставляют широкий спектр возможностей для хранения и манипулирования значениями даты и времени, что позволяет более гибко проектировать базы данных и разрабатывать приложения.
Тип данных Rowversion
В SQL Server 2008 тип данных “timestamp” устарел и заменен типом данных “rowversion”. Тип данных “rowversion” используется как механизм для отметки версий строк в таблице. Он содержит автоматически генерируемый уникальный двоичный номер, который изменяется при каждом обновлении строки. Это позволяет легко определить, изменилось ли какое-либо значение в строке.
Например, вы можете создать таблицу с колонкой “rowversion” следующим образом:
CREATE TABLE table1 (
col1 int,
col2 rowversion
);
Когда строка в этой таблице обновляется, значение колонки “rowversion” изменяется, указывая, что строка была изменена.
Функции даты и времени
В SQL Server 2008 есть шесть функций даты и времени, которые возвращают текущую системную отметку времени:
- GETDATE: Возвращает текущую системную отметку времени с точностью до .333 секунды.
- CURRENT_TIMESTAMP: Эквивалент функции GETDATE.
- GETUTCDATE: Возвращает текущую дату и время в формате UTC (Координированное всемирное время или среднее время по Гринвичу) с точностью до .333 секунды.
- SYSDATETIME: Возвращает текущую системную отметку времени без часового пояса с точностью до 10 миллисекунд.
- SYSDATETIMEOFFSET: Возвращает текущую системную отметку времени с часовым поясом с точностью до 10 миллисекунд.
- SYSUTCDATETIME: Возвращает дату и время в формате UTC с точностью до 10 миллисекунд.
Эти функции предоставляют удобные способы получения текущих значений даты и времени в различных форматах и часовых поясах.
Заключение
SQL Server 2008 вводит несколько новых типов данных даты и времени и функций, которые предлагают улучшенную функциональность и гибкость по сравнению с предыдущими версиями. Эти улучшения позволяют более точно хранить и манипулировать значениями даты и времени, что упрощает разработку приложений, основанных на точном отслеживании времени и обработке часовых поясов.
Важно знать об этих новых возможностях, но также стоит отметить, что SQL Server 2008 все еще находится в разработке и может быть изменен. Однако, понимание этих концепций заранее может помочь в планировании будущих приложений и использовании расширенных возможностей, предлагаемых SQL Server 2008.
Ожидайте новых статей о SQL Server и его различных возможностях!