Итак, у меня есть таблица, которая разбита на месяц и год, например, поле "Месяц" имеет номер 7 в этом месяце (в этом месяце), а поле "Год" - 2011 год. Также есть дополнительные месяцы и т.д. Как я могу запросите это, чтобы показать только текущий год, месяц?
SQL Текущий месяц/год вопрос
Ответ 1
В SQL Server вы можете использовать YEAR
, MONTH
и DAY
вместо DATEPART
.
(по крайней мере, в SQL Server 2005/2008, я не уверен в SQL Server 2000 и старше)
Я предпочитаю использовать эти "короткие формы", потому что для меня YEAR(getdate())
короче в типе и лучше читать, чем DATEPART(yyyy, getdate())
.
Итак, вы также можете запросить таблицу следующим образом:
select *
from your_table
where month_column = MONTH(getdate())
and year_column = YEAR(getdate())
Ответ 2
Это должно работать для SQL Server:
SELECT * FROM myTable
WHERE month = DATEPART(m, GETDATE()) AND
year = DATEPART(yyyy, GETDATE())
Ответ 3
Это должно работать в MySql
SELECT * FROM 'my_table' WHERE 'month' = MONTH(CURRENT_TIMESTAMP) AND 'year' = YEAR(CURRENT_TIMESTAMP);
Ответ 4
Как насчет:
Select *
from some_table st
where st.month = to_char(sysdate,'MM') and
st.year = to_char(sysdate,'YYYY');
должен работать в Oracle. Какую базу данных вы используете? Я прошу, потому что не все базы данных имеют одинаковые функции даты.
Ответ 5
выберите * с вашей_таблицы где MONTH (mont_year) = MONTH (NOW()) и YEAR (mont_year) = YEAR (NOW());
Примечание. (month_year) означает вашу колонку, которая содержит формат даты. Я думаю, что это решит вашу проблему. Сообщите мне, если этот запрос не работает.