it-swarm.com.de

Ab SQL DATE nur Monat und Jahr abrufen

Ich muss nur auf Month.Year über das Datumsfeld in SQL Server zugreifen.

97
user160820

Neben den bereits gegebenen Vorschlägen gibt es noch eine weitere Möglichkeit, die ich Ihrer Frage entnehmen kann:
- Sie möchten immer noch, dass das Ergebnis ein Datum ist
- Aber Sie möchten die Tage, Stunden usw. "verwerfen"
- Datumsfeld nur für Jahr/Monat 

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

Dadurch wird die Anzahl der ganzen Monate von einem Basisdatum (0) abgerufen und dann zu diesem Basisdatum hinzugefügt. Runden Sie also auf den Monat ab, in dem sich das Datum befindet.

ANMERKUNG: In SQL Server 2008 wird die ZEIT immer noch als 00: 00: 00.000 .__ angehängt. Dies ist nicht genau das Gleiche wie das "Entfernen" aller Notationen von Tag und Uhrzeit insgesamt. __ zuerst. z.B. 2009-10-01 00: 00: 00.000

142
MatBailie
select month(dateField), year(dateField)
109
Lucas Ayala
SELECT DATEPART(yy, DateVal)
SELECT DATEPART(MM, DateVal)
SELECT DATENAME(MM, DateVal)
29
Adriaan Stander
SELECT convert(varchar(7), getdate(), 126) 

Vielleicht möchten Sie diese Website besuchen: http://anubhavg.wordpress.com/2009/06/11/how-to-format-datetime-date-in-sql-server-2005/

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

die Ausgabe sieht wie folgt aus: 'Dezember 2013'

14
Valya Sylevych

Dafür gibt es zwei SQL-Funktionen:

Einzelheiten finden Sie in der verlinkten Dokumentation.

13

schreiben wir es so: YEAR(anySqlDate) und MONTH(anySqlDate). Versuchen Sie es beispielsweise mit YEAR(GETDATE()).

10

Dies kann auch hilfreich sein.

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

oder 

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

oder 

SELECT YEAR(yourDateField), MONTH(yourDateField), DAY(yourDateField);
10
NoNaMe
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
8
razvangry

Ich interpretiere Ihre Frage auf zwei Arten.

a) Sie brauchen nur Monat und Jahr getrennt. In diesem Fall finden Sie die Antwort

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

b) 

Sie möchten von einem bestimmten Datum aus etwa '2009-11-24 09:01:55.483' im Format MONTH.YEAR anzeigen. Die Ausgabe sollte in diesem Fall also 11.2009 sein.

Wenn dies der Fall sein soll, versuchen Sie es (unter anderen Alternativen).

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

CONCAT (Datumsteil (JJ, DATUM), FORMAT (DATUM, 'MM')) 

gibt Ihnen zB 201601, wenn Sie ein sechsstelliges Ergebnis wünschen

2
Mike
RIGHT(CONVERT(VARCHAR(10), reg_dte, 105), 7) 
2
Valya Sylevych

Einige Datenbanken wie MS Access oder RODBC unterstützen möglicherweise nicht die SQL SERVER-Funktionen, aber für jede Datenbank, die die FORMAT-Funktion hat, können Sie dies einfach tun:

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

Versuche dies

select to_char(DATEFIELD,'MON') from YOUR_TABLE

z.B.

select to_char(sysdate, 'MON') from dual
1
Amin
SELECT REPLACE(RIGHT(CONVERT(VARCHAR(11), GETDATE(), 106), 8), ' ', '-')

Ausgabe: März 2019

0
Amit Jaiswal

Für das Ergebnis: "JJJJ-MM" 

SELECT Besetzung (YEAR () als Varchar) + '-' + Besetzung (Month () als Varchar)

0

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

habe mir mein gewünschtes Datumsdatum als 07. März 2018 formatiert

Meine Spalte 'transfer_date' ist eine Datetime-Spalte, und ich verwende SQL Server 2017 in Azure

0

Monat und Jahr ab Datum abrufen

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

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

Abfrage: - Wählen Sie als FieldName den Dateinamen (m, GETDATE ()) + '-' + cast (Datumsteil (yyyy, GETDATE ()) als varchar aus

Ausgabe: - Januar-2019

allgemeines Datumsfeld können wir datename (m,) + '' + cast (Datumsteil (yyyy,) als varchar) als Feldnamen verwenden

0
Deepak Tambe

Versuche dies:

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

Ergebnis:

maio 2019

Wenn Sie in einer anderen Sprache möchten, ändern Sie ' pt-pt ' in eines dieser Elemente in link

0
Pedro

Ich hatte eine spezielle Anforderung, etwas Ähnliches zu tun, bei dem es Monat-Jahr anzeigt, was folgendermaßen geschehen kann:

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

In meinem speziellen Fall musste ich es auf die 3-Buchstaben-Monatsabkürzung mit einem zweistelligen Jahr beschränken und ungefähr so ​​aussehen: SELECT LEFT(DATENAME(month, GETDATE()), 3) + '-' + CAST(RIGHT(YEAR(GETDATE()),2) AS nvarchar(2)) AS 'Month-Year'

0
N. Haut

Meine Datenbank unterstützt die meisten der oben genannten Funktionen nicht, aber ich habe festgestellt, dass dies funktioniert:

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

zum Beispiel: SELECT SUBSTR(created, 1,7) FROM table;

gibt das Jahr und den Monat im Format "JJJJ-MM" zurück

0
mobfire