Использование данных даты и времени
Изменения: 14 апреля 2006 г.
В SQL Server 2005 категория «Тип данных даты и времени» включает в себя следующие типы данных:
- datetime
- smalldatetime
Типы данных datetime и smalldatetime позволяют выполнять следующие операции.
- Вводить новую дату и время или изменять существующую дату и время.
- Складывать и вычитать даты. Дополнительные сведения об арифметике дат см. в разделах Оператор + (сложение) (Transact-SQL) и - (Вычитание) (Transact-SQL).
- Осуществлять поиск заданной даты или времени.
Предусмотрена возможность выполнения арифметических расчетов над данными типов datetime и smalldatetime с использованием системных функций даты и времени. Дополнительные сведения см. в разделе Функции (Transact-SQL).
Несколько рекомендаций по использованию данных даты и времени.
При выполнении поиска даты и времени с точным соответствием используйте знак равенства (=). SQL Server возвращает значения даты и времени с точным соответствием по месяцу, дню и году и в точное время 12:00:00:000 часов дня (по умолчанию). Дополнительные сведения о работе с временем см. в разделе Форматы времени.
SQL Server вычисляет константы datetime во время выполнения. Возможно, что строка даты, выполняющая свою функцию для форматов дат, используемых в одном языке, не будет распознаваться, если запрос будет выполняться при соединении, использующем другой язык и другую настройку формата даты. Например, данное представление правильно функционирует при соединении с использованием американского варианта английского языка, но не при соединении с использованием других языковых настроек:
CREATE VIEW dbo.USA_Dates AS SELECT PurchaseOrderID, TotalDue FROM AdventureWorks.Purchasing.PurchaseOrderHeader WHERE OrderDate < 'May 1, 2002';
При использовании констант datetime в запросах, выполняемых соединениями, где применяются различные языковые настройки, позаботьтесь о том, чтобы форматы дат были приемлемыми для всех языковых настроек. Такую же осмотрительность следует проявлять и при работе с константами datetime в постоянных объектах международных баз данных, например в ограничениях на таблицы и предложениях WHERE в представлениях. В следующем примере демонстрируется метод применения константы datetime, обеспечивающий ее единообразную интерпретацию при использовании настроек соединения для всех форматов языков или дат.
CREATE VIEW dbo.International_Dates AS SELECT PurchaseOrderID, TotalDue FROM AdventureWorks.Purchasing.PurchaseOrderHeader WHERE OrderDate < CONVERT(DATETIME,'20020501',101);
Дополнительные сведения см. в разделе Написание интернационализированных инструкций на языке Transact-SQL.
SQL Server распознает данные даты и времени, заключенные в одинарные кавычки ('') в следующих форматах:
- алфавитный формат даты, например «15 апреля 1998 г.»;
- числовой формат даты, например «4/15/1998»;
- строковый формат без разделителей. Например, строка «19981207» интерпретируется как 7 декабря 1998 года.
См. также
Другие ресурсы
Дата и время (Transact-SQL)
Типы данных (Transact-SQL)
Функции CAST и CONVERT (Transact-SQL)