Necesito acceder solo al campo Month.Year from Date en SQL Server.
Necesito acceder solo al campo Month.Year from Date en SQL Server.
Respuestas:
Además de las sugerencias dadas, hay otra posibilidad que puedo inferir de su pregunta:
- Todavía desea que el resultado sea una fecha
- Pero desea 'descartar' los Días, Horas, etc.
- Dejar un año / mes solo campo de fecha
SELECT
DATEADD(MONTH, DATEDIFF(MONTH, 0, <dateField>), 0) AS [year_month_date_field]
FROM
<your_table>
Esto obtiene el número de meses completos desde una fecha base (0) y luego los agrega a esa fecha base. Redondeando así al mes en el que se encuentra la fecha.
NOTA: en SQL Server 2008, aún tendrá la HORA adjunta como 00: 00: 00,000 Esto no es exactamente lo mismo que "eliminar" cualquier notación de día y hora por completo. También el DÍA establecido en el primero. por ejemplo, 2009-10-01 00: 00: 00.000
select month(dateField), year(dateField)
SELECT convert(varchar(7), getdate(), 126)
Puede visitar este sitio web: 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
el resultado se verá así: 'Diciembre 2013'
Hay dos funciones SQL para hacerlo:
Consulte la documentación vinculada para más detalles.
Esto también puede ser útil.
SELECT YEAR(0), MONTH(0), DAY(0);
o
SELECT YEAR(getdate()), MONTH(getdate()), DAY(getdate());
o
SELECT YEAR(yourDateField), MONTH(yourDateField), DAY(yourDateField);
escribámoslo de esta manera: YEAR(anySqlDate)
y MONTH(anySqlDate)
. Pruébalo con YEAR(GETDATE())
por ejemplo.
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
Estoy interpretando tu pregunta de dos maneras.
a) Solo necesita mes y año por separado, en cuyo caso aquí está la respuesta
select
[YEAR] = YEAR(getdate())
,[YEAR] = DATEPART(YY,getdate())
, [MONTH] = month(getdate())
,[MONTH] = DATEPART(mm,getdate())
,[MONTH NAME] = DATENAME(mm, getdate())
si)
Desea mostrar desde una fecha determinada, por ejemplo, '2009-11-24 09:01:55.483'
en formato MES.AÑO . Entonces la salida debería venir como 11.2009
en este caso.
Si se supone que ese es el caso, intente esto (entre otras alternativas)
select [Month.Year] = STUFF(CONVERT(varchar(10), GETDATE(),104),1,3,'')
RIGHT(CONVERT(VARCHAR(10), reg_dte, 105), 7)
Prueba esto:
portugués
SELECT format(dateadd(month, 0, getdate()), 'MMMM', 'pt-pt') + ' ' + convert(varchar(10),year(getdate()),100)
Resultado: maio 2019
Inglés
SELECT format(dateadd(month, 0, getdate()), 'MMMM', 'en-US') + ' ' + convert(varchar(10),year(getdate()),100)
Resultado: mayo de 2019
Si lo desea en otro idioma, cambie ' pt-pt ' o ' en-US ' a cualquiera de estos en el enlace
Tenía un requisito específico para hacer algo similar donde mostraría mes-año, lo que se puede hacer de la siguiente manera:
SELECT DATENAME(month, GETDATE()) + '-' + CAST(YEAR(GETDATE()) AS nvarchar) AS 'Month-Year'
En mi caso particular, necesitaba reducirlo a la apertura de 3 letras por mes con un año de 2 dígitos, con un aspecto similar a este:
SELECT LEFT(DATENAME(month, GETDATE()), 3) + '-' + CAST(RIGHT(YEAR(GETDATE()),2) AS nvarchar(2)) AS 'Month-Year'
Tratar SELECT CONCAT(month(datefield), '.', year(datefield)) FROM YOURTABLE;
Mi base de datos no admite la mayoría de las funciones anteriores, sin embargo, descubrí que esto funciona:
SELECT * FROM table WHERE SUBSTR(datetime_column, starting_position, number_of_strings)=required_year_and_month;
por ejemplo:
SELECT SUBSTR(created, 1,7) FROM table;
devuelve el año y el mes en el formato "aaaa-mm"
Obtener mes y año desde la fecha
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), ' ', '-')
Salida: Mar-2019
Consulta :- Select datename(m,GETDATE())+'-'+cast(datepart(yyyy,GETDATE()) as varchar) as FieldName
Salida: enero-2019
campo de fecha general que podemos usar
datename(m,<DateField>)+' '+cast(datepart(yyyy,<DateField>) as varchar) as FieldName
Para el resultado: "AAAA-MM"
SELECT cast(YEAR(<DateColumn>) as varchar) + '-' + cast(Month(<DateColumn>) as varchar)
select convert(varchar(11), transfer_date, 106)
me dio el resultado deseado de fecha con formato 07 Mar 2018
Mi columna 'transfer_date' es una columna de tipo de fecha y hora y estoy usando SQL Server 2017 en azure
seleccione CONCAT (MES (GETDATE ()), '.', AÑO (GETDATE ()))
Salida: 5.2020
seleccione CONCAT (DATENAME (MES, GETDATE ()), '.', AÑO (GETDATE ()))
Salida: mayo.2020