2011-04-27 1 views
9

В БД, с которым я работаю, я хочу выбрать только год из определенного поля TimeStamp. В частности, я надеюсь выделить уникальные годы из этой колонки базы данных.Как выбрать часть метки времени в SQL-запросе

Например, если все отметки времени в поле "ModifyTimeStamp" относятся к году 2002 или 2006 году, я хотел бы просто вернуть результат «2002» и «2006». Если это невозможно, я был бы доволен тем, что получил результат кучки «2002 года», смешанного с «2006», и проанализировал его позже.

Все, что мне удалось получить до сих пор, это "Select ModifyTimeStamp from Table" - все мои попытки разобрать не удались. Я начал читать о команде extract для SQL, но я считаю, что это только для PostgreSQL.

Любые советы приветствуются!

Редактировать: Получил ответ, большое спасибо datagod и Marc. Код, который я искал кончались существа:

"Select distinct YEAR(ModifyTimeStamp) from Table"

+0

Какая база данных? (Кроме того, случайная информация: «timestamp» на SQL-сервере не имеет ничего общего с датами или временем ;-) –

+0

Извините, забыли указать. База данных MySQL – pghprogrammer4

ответ

10

Вы не указать, какой RDBMS (сервер базы данных) вы используете, но большинство баз данных действительно есть дата функции обработки встроенных:

  • MySQL/SQL Server:

    select YEAR(modifytimestamp) from yourtable 
    
  • Access/SQL Server:

    select DatePart(year, modifytimestamp) from yourtable 
    
  • Oracle:

    select TO_CHAR(modifytimestamp, 'YYYY') from yourtable 
    
8

Попробуйте

select distinct datepart(yy,TheDate) from YourTable
+1

Это работает для MS SQL Server, но другие РСУБД будут иметь подобные вызовы функций. –

+0

Ссылка: [SQL Server (2008) datepart] (http://msdn.microsoft.com/en-us/library/ms174420.aspx) –

+1

Спасибо datagod. Моя фактическая команда оказалась немного другой, но вы поставили меня на правильный путь с ключевым словом «different». Не могу поверить, что я пропустил это в своем поиске ... – pghprogrammer4

 Смежные вопросы

  • Нет связанных вопросов^_^