Тип данных даты и времени SQL

#sql

#sql

Вопрос:

Я только сейчас начал работать с SQL; мне нужно представить некоторую информацию в некоторых таблицах, двумя из которых являются дата и время. Я хочу знать, существует ли лучший тип данных для представления даты и времени, чем varchar() или numeric(). Существуют ли какие-либо примитивы SQL для представления даты и времени?

Комментарии:

1. Какой диалект SQL при этом отличается?

Ответ №1:

Да, для большинства реализаций баз данных SQL существуют типы данных, специфичные для даты и времени.

Точный синтаксис зависит от поставщика RDMS, но вот несколько примеров для очень популярных Microsoft SQL Server и Oracle (ранее Sun) MySQL.

MySQL поставляется со следующими типами данных для хранения даты или значения даты / времени в базе данных:

  • Формат даты ГГГГ-ММ-ДД
  • ДАТА-время — формат: ГГГГ-ММ-ДД ЧЧ: ММ: СС
  • ВРЕМЕННАЯ МЕТКА — формат: ГГГГ-ММ-ДД ЧЧ: ММ: СС
  • ГОД — формат ГГГГ или YY

SQL Server поставляется со следующими типами данных для хранения даты или значения даты / времени в базе данных:

  • Формат даты ГГГГ-ММ-ДД
  • ДАТА-время — формат: ГГГГ-ММ-ДД ЧЧ: ММ: СС
  • SMALLDATETIME — формат: ГГГГ-ММ-ДД ЧЧ: ММ: СС
  • Формат временной МЕТКИ: уникальное число

Или вы можете выполнить поиск в других реализациях базы данных. Пример:

«Oracle тип данных даты и времени sql»

Вы могли бы найти:

Комментарии:

1. MySQL также имеет TIME тип данных: dev.mysql.com/doc/refman/5.1/en/date-and-time-types.html

2. В SQL-Server 2008 также есть некоторые дополнительные типы данных, но в нем нет timestamp : msdn.microsoft.com/en-us/library/ms187752.aspx

3. Если вы не имеете в виду datetimeoffset : msdn.microsoft.com/en-us/library/bb630289.aspx

4. То, что было вызвано timestamp в SQL-Server 2005, на самом деле было не временной меткой, а уникальным двоичным числом: msdn.microsoft.com/en-us/library/ms182776(v=SQL.90).aspx Теперь он вызывается rowversion , и на этой странице вы можете прочитать: «Синтаксис временных меток устарел. Эта функция будет удалена в будущей версии Microsoft SQL Server.»

Ответ №2:

Это зависит от того, с каким вариантом вы работаете, но большинство вариантов SQL предлагают date, smalldate, datetime, datetimeoffset и т.д.

На самом деле это зависит только от того, как вы хотите отобразить дату и какой объем информации вы хотели бы отобразить.

Наиболее распространенной формой является datetime, и она объясняется (наряду со всеми другими) в MSDN Transact-SQL

Комментарии:

1. Спасибо phoenix, я собираюсь попробовать протестировать это с помощью datetime, чтобы посмотреть, как это работает.