Мне нужно получить доступ только к полю 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;