una tipo obtener mes insertar hora fecha ejemplo dato año sql sql-server

tipo - Obtenga mes y año a partir de una fecha y hora en SQL Server 2005



obtener mes y año de una fecha sql (20)

¡Lo siguiente funciona perfectamente! Lo acabo de usar, pruébalo.

date_format(date,''%Y-%c'')

Necesito el mes + año de la fecha y hora en SQL Server como ''Ene 2008''. Estoy agrupando la consulta por mes, año. He buscado y encontrado funciones como datepart, convert, etc., pero ninguna de ellas me parece útil. ¿Me estoy perdiendo de algo? ¿Hay una función para esto?


¿Qué tal esto?

Select DateName( Month, getDate() ) + '' '' + DateName( Year, getDate() )


A partir de SQL Server 2012, puede usar:

SELECT FORMAT(@date, ''yyyyMM'')


En el servidor SQL 2012, a continuación se puede utilizar

seleccione FORMAT (getdate (), ''MMM yaaa'')

Esto da el exacto "junio de 2016"


Es curioso, solo estaba jugando escribir esta misma consulta en SQL Server y luego LINQ.

SELECT DATENAME(mm, article.Created) AS Month, DATENAME(yyyy, article.Created) AS Year, COUNT(*) AS Total FROM Articles AS article GROUP BY DATENAME(mm, article.Created), DATENAME(yyyy, article.Created) ORDER BY Month, Year DESC

Produce la siguiente salida (ejemplo).

Month | Year | Total January | 2009 | 2


Es un gran trabajo.

DECLARE @pYear VARCHAR(4) DECLARE @pMonth VARCHAR(2) DECLARE @pDay VARCHAR(2) SET @pYear = RIGHT(CONVERT(CHAR(10), GETDATE(), 101), 4) SET @pMonth = LEFT(CONVERT(CHAR(10), GETDATE(), 101), 2) SET @pDay = SUBSTRING(CONVERT(CHAR(10), GETDATE(), 101), 4,2) SELECT @pYear,@pMonth,@pDay


Ese formato no existe. Tienes que hacer una combinación de dos cosas,

select convert(varchar(4),getdate(),100) + convert(varchar(4),year(getdate()))


La conversión de la fecha al primero del mes le permite Agrupar por orden y Por un solo atributo, y es más rápido en mi experiencia.

declare @mytable table(mydate datetime) declare @date datetime set @date = ''19000101'' while @date < getdate() begin insert into @mytable values(@date) set @date = dateadd(day,1,@date) end select count(*) total_records from @mytable select dateadd(month,datediff(month,0,mydate),0) first_of_the_month, count(*) cnt from @mytable group by dateadd(month,datediff(month,0,mydate),0)


La pregunta es sobre SQL Server 2005, muchas de las respuestas aquí son para la versión posterior SQL Server.

select convert (varchar(7), getdate(),20) --Typical output 2015-04

SQL Server 2005 no tiene función de fecha que se introdujo en SQL Server 2008


Sí, puede usar datename(month,intime) para obtener el mes en texto.


Si quiere decir que los quiere de vuelta como una cadena, en ese formato;

SELECT CONVERT(CHAR(4), date_of_birth, 100) + CONVERT(CHAR(4), date_of_birth, 120) FROM customers

Estas son las otras opciones de formato


Tuve el mismo problema y después de mirar alrededor encontré esto:

SELECT DATENAME(yyyy, date) AS year FROM Income GROUP BY DATENAME(yyyy, date)

¡Está funcionando genial!


Utilizar:

select datepart(mm,getdate()) --to get month value select datename(mm,getdate()) --to get name of month


devuelve el nombre completo del mes, -, año completo, por ejemplo, March-2017

CONCAT(DATENAME(mm, GetDate()), ''-'', DATEPART(yy, GetDate()))


la mejor manera de hacerlo es con:

dateadd(month,datediff(month,0,*your_date*),0)

mantendrá su tipo de fecha y hora


,datename(month,(od.SHIP_DATE)) as MONTH_

Respuesta: MONTH_ Enero Enero Septiembre Octubre Diciembre Octubre Septiembre


( Month(Created) + '','' + Year(Created) ) AS Date


---Lalmuni Demos--- create table Users ( userid int,date_of_birth date ) ---insert values--- insert into Users values(4,''9/10/1991'') select DATEDIFF(year,date_of_birth, getdate()) - (CASE WHEN (DATEADD(year, DATEDIFF(year,date_of_birth, getdate()),date_of_birth)) > getdate() THEN 1 ELSE 0 END) as Years, MONTH(getdate() - (DATEADD(year, DATEDIFF(year, date_of_birth, getdate()), date_of_birth))) - 1 as Months, DAY(getdate() - (DATEADD(year, DATEDIFF(year,date_of_birth, getdate()), date_of_birth))) - 1 as Days, from users


cast(cast(sq.QuotaDate as date) as varchar(7))

da el formato "2006-04"


select datepart(month,getdate()) -- integer (1,2,3...) ,datepart(year,getdate()) -- integer ,datename(month,getdate()) -- string (''September'',...)