SQL Текущий месяц / год вопрос - PullRequest
22 голосов
/ 14 июля 2011

Итак, у меня есть таблица с разбивкой по месяцу и году, например, поле с названием «Месяц» содержит число 7 (этот месяц), а поле «Год» - 2011. Есть также дополнительные месяцы, годы и т. Д. Как я могузапросить это, чтобы показать только текущий год, месяц?

Ответы [ 5 ]

38 голосов
/ 14 июля 2011

В SQL Server вы можете использовать YEAR, MONTH и DAY вместо DATEPART.
(по крайней мере, в SQL Server 2005/2008 я не уверен насчет SQL Server2000 и старше)

Я предпочитаю использовать эти "короткие формы", потому что для меня YEAR(getdate()) короче набирать и лучше читать, чем DATEPART(yyyy, getdate()).

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

select *
from your_table
where month_column = MONTH(getdate())
and year_column = YEAR(getdate())
10 голосов
/ 14 июля 2011

Это должно работать для SQL Server:

SELECT * FROM myTable
WHERE month = DATEPART(m, GETDATE()) AND
year = DATEPART(yyyy, GETDATE())
5 голосов
/ 14 июля 2011

Это должно работать в MySql

SELECT * FROM 'my_table' WHERE 'month' = MONTH(CURRENT_TIMESTAMP) AND 'year' = YEAR(CURRENT_TIMESTAMP);
1 голос
/ 14 июля 2011

Как насчет:

Select *
from some_table st
where st.month = to_char(sysdate,'MM') and
    st.year = to_char(sysdate,'YYYY');

должно работать в Oracle. Какую базу данных вы используете? Я спрашиваю, потому что не все базы данных имеют одинаковые функции даты.

0 голосов
/ 08 октября 2014

выберите * из your_table, где MONTH (mont_year) = MONTH (NOW ()) и YEAR (mont_year) = YEAR (NOW ());

Примечание: (month_year) означаетВаш столбец, который содержит формат даты.Я думаю, что это решит вашу проблему.Дайте мне знать, если этот запрос не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...