Как выбрать часть временной метки в SQL-запросе

#mysql #sql #timestamp #distinct #extract

#mysql #sql #временная метка #distinct #извлечь

Вопрос:

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

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

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

Любой совет с благодарностью!

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

"Select distinct YEAR(ModifyTimeStamp) from Table"

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

1. Какая база данных? (Кроме того, случайная информация: timestamp в SQL server не имеет ничего общего с датами или временем 😉

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

Ответ №1:

Вы не указываете, какую СУБД (сервер базы данных) вы используете, но в большинстве баз данных есть встроенные функции обработки даты:

  • MySQL / SQL Server:

     select YEAR(modifytimestamp) from yourtable
      
  • Доступ / SQL Server:

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

     select TO_CHAR(modifytimestamp, 'YYYY') from yourtable
      

Ответ №2:

Попробуйте это

выберите отдельную часть даты (yy, theDate) из YourTable

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

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

2. Ссылка: Часть даты SQL Server (2008)

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