#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». Не могу поверить, что я пропустил это в своем поиске…