Мне нужно получить доступ только к полю Month.Year from Date в SQL Server.
Получение только месяца и года из SQL DATE
Ответ 1
Как и уже упомянутые предложения, есть еще одна возможность, которую я могу сделать из вашего вопроса:
- Вы все еще хотите, чтобы результат был датой
- Но вы хотите "отказаться" от дней, часов и т.д.
- Оставить поле даты только за месяц/месяц
SELECT
DATEADD(MONTH, DATEDIFF(MONTH, 0, <dateField>), 0) AS [year_month_date_field]
FROM
<your_table>
Это число целых месяцев от базовой даты (0), а затем добавляет их к этой базовой дате. Таким образом, округление до месяца, в котором находится дата.
ПРИМЕЧАНИЕ. В SQL Server 2008 у вас все равно будет установлено ВРЕМЯ как 00: 00: 00.000 Это не совсем то же самое, что "удалить" любые обозначения дня и времени в целом. Также ДЕНЬ установлен на первый. например 2009-10-01 00: 00: 00.000
Ответ 2
select month(dateField), year(dateField)
Ответ 3
SELECT DATEPART(yy, DateVal)
SELECT DATEPART(MM, DateVal)
SELECT DATENAME(MM, DateVal)
Ответ 4
SELECT convert(varchar(7), getdate(), 126)
Вы можете проверить этот веб-сайт: http://anubhavg.wordpress.com/2009/06/11/how-to-format-datetime-date-in-sql-server-2005/
Ответ 5
datename(m,column)+' '+cast(datepart(yyyy,column) as varchar) as MonthYear
вывод будет выглядеть так: 'декабрь 2013'
Ответ 6
Для этого есть две функции SQL:
Подробнее см. связанную документацию.
Ответ 7
напишите так: YEAR(anySqlDate) и MONTH(anySqlDate). Попробуйте, например, с помощью YEAR(GETDATE()).
Ответ 8
Это также может быть полезно.
SELECT YEAR(0), MONTH(0), DAY(0);
или
SELECT YEAR(getdate()), MONTH(getdate()), DAY(getdate());
или
SELECT YEAR(yourDateField), MONTH(yourDateField), DAY(yourDateField);
Ответ 9
convert(varchar(7), <date_field>, 120)
because 120 results in 'yyyy-MM-dd' which is varchar(10)
using varchar(7) will display only year and month
example:
select convert(varchar(7), <date_field>, 120), COUNT(*)
from <some_table>
group by convert(varchar(7), <date_field>, 120)
order by 1
Ответ 10
Я интерпретирую ваш вопрос двумя способами.
a) Вам нужно только месяц и год отдельно, и в этом случае вот ответ
select
[YEAR] = YEAR(getdate())
,[YEAR] = DATEPART(YY,getdate())
, [MONTH] = month(getdate())
,[MONTH] = DATEPART(mm,getdate())
,[MONTH NAME] = DATENAME(mm, getdate())
b)
Вы хотите отобразить с указанной даты, произнесите '2009-11-24 09:01:55.483' в формате MONTH.YEAR. Таким образом, выход должен выглядеть как 11.2009 в этом случае.
Если это должно быть так, попробуйте это (среди других альтернатив)
select [Month.Year] = STUFF(CONVERT(varchar(10), GETDATE(),104),1,3,'')
Ответ 11
Некоторые базы данных, такие как MS ACCESS или RODBC могут не поддерживать функции SQL SERVER, но для любой базы данных, которая имеет функцию FORMAT вы можете просто сделать это:
SELECT FORMAT(<your-date-field>,"YYYY-MM") AS year-date FROM <your-table>
Ответ 12
RIGHT(CONVERT(VARCHAR(10), reg_dte, 105), 7)
Ответ 13
CONCAT (datepart (yy,DATE), FORMAT (DATE,'MM'))
например, 201601, если вы хотите получить шестизначный результат
Ответ 14
Попробуйте это
select to_char(DATEFIELD,'MON') from YOUR_TABLE
например.
select to_char(sysdate, 'MON') from dual
Ответ 15
Попробуй это:
португальский
SELECT format(dateadd(month, 0, getdate()), 'MMMM', 'pt-pt') + ' ' + convert(varchar(10),year(getdate()),100)
Результат: майо 2019
английский
SELECT format(dateadd(month, 0, getdate()), 'MMMM', 'en-US') + ' ' + convert(varchar(10),year(getdate()),100)
Результат: май 2019
Если вы хотите на другом языке, замените " pt-pt " или " en-US " на любой из этих в ссылке
Ответ 16
Моя база данных не поддерживает большинство вышеперечисленных функций, однако я обнаружил, что это работает:
SELECT * FROM table WHERE SUBSTR(datetime_column, starting_position, number_of_strings)=required_year_and_month;
например:
SELECT SUBSTR(created, 1,7) FROM table;
возвращает год и месяц в формате "yyyy-mm"
Ответ 17
select convert(varchar(11), transfer_date, 106)
получил мне желаемый результат даты в формате 07 марта 2018
Мой столбец "Transfer_date" является столбцом типа datetime, и я использую SQL Server 2017 в Azure
Ответ 18
Для результата: "ГГГГ-ММ"
SELECT cast(YEAR(<DateColumn>) as varchar) + '-' + cast(Month(<DateColumn>) as varchar)
Ответ 19
Получить месяц и год от даты
DECLARE @lcMonth nvarchar(10)
DECLARE @lcYear nvarchar(10)
SET @lcYear=(SELECT DATEPART(YEAR,@Date))
SET @lcMonth=(SELECT DATEPART(MONTH,@Date))
Ответ 20
Запрос: - Select datename(m,GETDATE())+'-'+cast(datepart(yyyy,GETDATE()) as varchar) as FieldName
Выход: - январь-2019
общее поле даты мы можем использовать
datename(m,<DateField>)+' '+cast(datepart(yyyy,<DateField>) as varchar) as FieldName
Ответ 21
SELECT REPLACE(RIGHT(CONVERT(VARCHAR(11), GETDATE(), 106), 8), ' ', '-')
Выход: март-2019
Ответ 22
У меня было определенное требование сделать что-то подобное, где бы отображался месяц-год, что можно сделать следующим образом:
SELECT DATENAME(month, GETDATE()) + '-' + CAST(YEAR(GETDATE()) AS nvarchar) AS 'Month-Year'
В моем конкретном случае мне нужно было сократить его до трехбуквенного месяца с двухзначным годом, примерно так:
SELECT LEFT(DATENAME(month, GETDATE()), 3) + '-' + CAST(RIGHT(YEAR(GETDATE()),2) AS nvarchar(2)) AS 'Month-Year'
Ответ 23
Попробуйте SELECT CONCAT(month(datefield), '.', year(datefield)) FROM YOURTABLE;