2015-11-25 8 views
1

В моей базе данных есть таблица «События». Столбцы включают «имя», «дата» и «тип . Я хочу запустить запрос, который возвращает все имена событий заданного типа даты и.Как использовать DATEPART для возврата всех строк с конкретным годом

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

+0

Просим использовать бирки dbms. (DATEPART не ANSI SQL ...) – jarlh

ответ

1

Предполагая, что вы используете SQL Server, и в столбце «Date» является DATE или тип данных DATETIME, вы можете сделать это:

SELECT GETDATE() -- i.e. will return 2015-11-25 11:27:27.700 
    SELECT DATEPART(YEAR,GETDATE()) -- returns 2015 

Таким образом, ваш запрос, чтобы получить все события в 2015 году, например, может выглядеть следующим образом:

SELECT Name, Date, Type 
    FROM Events 
    WHERE DATEPART(YEAR,Date) = 2015 
    AND TYPE = <your type condition> 
    ORDER BY Date; 
0

Если вы используете функцию «DATEPART», это будет вызываться для каждой строки в базе данных, которая может быть дорогостоящим.

Лучше выбрать год, используя диапазон, затем он может использовать индексы для поиска соответствующих строк в вашей базе данных.

select * from Events where [Date]>='1 jan 2015' and [Date]<'1 jan 2016' and [type]=1

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

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