IT박스

SQL DATE에서 월과 연도 만 가져 오기

itboxs 2020. 7. 24. 07:54
반응형

SQL DATE에서 월과 연도 만 가져 오기


SQL Server의 Date 필드에서 Month.Year에만 액세스해야합니다.


: 제안은 이미 주어진 아니라, 다른 한 possiblity가 존재하는 한 나는 당신의 질문에서 추측 할 수
당신은 아직 날짜로 결과를 원하는 -
-하지만 당신은 '폐기'는 일, 시간 등 원하는
- 떠나 년 / 월 날짜 필드 만

SELECT
   DATEADD(MONTH, DATEDIFF(MONTH, 0, <dateField>), 0) AS [year_month_date_field]
FROM
   <your_table>

기본 날짜 (0)에서 전체 월 수를 가져온 다음 해당 기본 날짜에 추가합니다. 따라서 날짜가있는 달로 내림합니다.

참고 : SQL Server 2008에서는 여전히 TIME을 00 : 00 : 00.000으로 첨부합니다. 이것은 날짜와 시간을 모두 "제거"하는 것과 정확히 동일하지 않습니다. 또한 DAY가 첫 번째로 설정되었습니다. 예 : 2009-10-01 00 : 00 : 00.000


select month(dateField), year(dateField)

SELECT DATEPART(yy, DateVal)
SELECT DATEPART(MM, DateVal)
SELECT DATENAME(MM, DateVal)

SELECT convert(varchar(7), getdate(), 126) 

이 웹 사이트를 확인하고 싶을 수 있습니다 : http://anubhavg.wordpress.com/2009/06/11/how-to-format-datetime-date-in-sql-server-2005/


datename(m,column)+' '+cast(datepart(yyyy,column) as varchar) as MonthYear

결과는 다음과 같습니다. '2013 년 12 월'


이를 수행하는 두 가지 SQL 함수가 있습니다.

자세한 내용은 링크 된 설명서를 참조하십시오.


이것도 도움이 될 수 있습니다.

SELECT YEAR(0), MONTH(0), DAY(0);

또는

SELECT YEAR(getdate()), MONTH(getdate()), DAY(getdate());

또는

SELECT YEAR(yourDateField), MONTH(yourDateField), DAY(yourDateField);

의는이 방법을 쓸 수 : YEAR(anySqlDate)MONTH(anySqlDate). YEAR(GETDATE())예를 들어 사용해보십시오 .


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

귀하의 질문을 두 가지 방식으로 해석하고 있습니다.

a) 월과 연도 만 별도로 필요합니다.

select 
        [YEAR] = YEAR(getdate())
        ,[YEAR] = DATEPART(YY,getdate())
        , [MONTH] = month(getdate())
        ,[MONTH] = DATEPART(mm,getdate())
        ,[MONTH NAME] = DATENAME(mm, getdate()) 

비)

당신은 주어진 날짜의 말에서 표시 할 '2009-11-24 09:01:55.483'에서 MONTH.YEAR의 형식입니다. 따라서 출력은 11.2009이 경우 와 같아야합니다 .

그것이 사실이라면, 이것을 시도하십시오 (다른 대안들 중에서)

select [Month.Year] = STUFF(CONVERT(varchar(10), GETDATE(),104),1,3,'')

Some of the databases such as MS ACCESS or RODBC may not support the SQL SERVER functions, but for any database that has the FORMAT function you can simply do this:

SELECT FORMAT(<your-date-field>,"YYYY-MM") AS year-date FROM <your-table>

RIGHT(CONVERT(VARCHAR(10), reg_dte, 105), 7) 

CONCAT (datepart (yy,DATE), FORMAT (DATE,'MM')) 

gives you eg 201601 if you want a six digit result


Try this

select to_char(DATEFIELD,'MON') from YOUR_TABLE

eg.

select to_char(sysdate, 'MON') from dual

Try this:

Portuguese

SELECT format(dateadd(month, 0, getdate()), 'MMMM', 'pt-pt') + ' ' + convert(varchar(10),year(getdate()),100)

Result: maio 2019


English

SELECT format(dateadd(month, 0, getdate()), 'MMMM', 'en-US') + ' ' + convert(varchar(10),year(getdate()),100)

Result: May 2019

If you want in another language, change 'pt-pt' or 'en-US' to any of these in link


My database doesn't support most of the functions above however I found that this works:

SELECT * FROM table WHERE SUBSTR(datetime_column, starting_position, number_of_strings)=required_year_and_month;

for example: SELECT SUBSTR(created, 1,7) FROM table;

returns the year and month in the format "yyyy-mm"


Get Month & Year From Date

DECLARE @lcMonth nvarchar(10)
DECLARE @lcYear nvarchar(10)

SET @lcYear=(SELECT  DATEPART(YEAR,@Date))
SET @lcMonth=(SELECT  DATEPART(MONTH,@Date))

SELECT REPLACE(RIGHT(CONVERT(VARCHAR(11), GETDATE(), 106), 8), ' ', '-')

Output: Mar-2019


Query :- Select datename(m,GETDATE())+'-'+cast(datepart(yyyy,GETDATE()) as varchar) as FieldName

Output :- January-2019

general datefield we can use

datename(m,<DateField>)+' '+cast(datepart(yyyy,<DateField>) as varchar) as FieldName

For result: "YYYY-MM"

SELECT cast(YEAR(<DateColumn>) as varchar) + '-' + cast(Month(<DateColumn>) as varchar)

select convert(varchar(11), transfer_date, 106) 

got me my desired result of date formatted as 07 Mar 2018

My column 'transfer_date' is a datetime type column and I am using SQL Server 2017 on azure


I had a specific requirement to do something similar where it would show month-year which can be done by the following:

SELECT DATENAME(month, GETDATE()) + '-' + CAST(YEAR(GETDATE()) AS nvarchar) AS 'Month-Year'

In my particular case, I needed to have it down to the 3 letter month abreviation with a 2 digit year, looking something like this: SELECT LEFT(DATENAME(month, GETDATE()), 3) + '-' + CAST(RIGHT(YEAR(GETDATE()),2) AS nvarchar(2)) AS 'Month-Year'


Try SELECT CONCAT(month(datefield), '.', year(datefield)) FROM YOURTABLE;

참고URL : https://stackoverflow.com/questions/1781946/getting-only-month-and-year-from-sql-date

반응형