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
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'',...)