Ich muss nur auf das Feld Month.Year from Date in SQL Server zugreifen.
Ich muss nur auf das Feld Month.Year from Date in SQL Server zugreifen.
Antworten:
Neben den bereits gegebenen Vorschlägen gibt es noch eine weitere Möglichkeit, die ich aus Ihrer Frage ableiten kann:
- Sie möchten immer noch, dass das Ergebnis ein Datum ist.
- Aber Sie möchten die Tage, Stunden usw. "verwerfen".
- Ein Jahr / Monat verlassen nur Datumsfeld
SELECT
DATEADD(MONTH, DATEDIFF(MONTH, 0, <dateField>), 0) AS [year_month_date_field]
FROM
<your_table>
Dadurch wird die Anzahl der ganzen Monate ab einem Basisdatum (0) ermittelt und zu diesem Basisdatum hinzugefügt. Runden Sie also auf den Monat ab, in dem das Datum liegt.
ANMERKUNG: In SQL Server 2008 ist die ZEIT weiterhin als 00: 00: 00.000 angehängt. Dies entspricht nicht genau dem "Entfernen" einer Notation von Tag und Uhrzeit insgesamt. Auch der Tag ist auf den ersten eingestellt. zB 2009-10-01 00: 00: 00.000
select month(dateField), year(dateField)
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/
SELECT DATEPART(yy, DateVal)
SELECT DATEPART(MM, DateVal)
SELECT DATENAME(MM, DateVal)
datename(m,column)+' '+cast(datepart(yyyy,column) as varchar) as MonthYear
Die Ausgabe sieht folgendermaßen aus: 'Dezember 2013'
Es gibt zwei SQL-Funktionen, um dies zu tun:
Weitere Informationen finden Sie in der verknüpften Dokumentation.
Schreiben wir es so: YEAR(anySqlDate)
und MONTH(anySqlDate)
. Versuchen Sie es YEAR(GETDATE())
zum Beispiel mit.
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
Ich interpretiere Ihre Frage auf zwei Arten.
a) Sie brauchen Monat und Jahr nur getrennt. In diesem Fall ist hier 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 ab einem bestimmten Datum beispielsweise '2009-11-24 09:01:55.483'
im Format MONTH.YEAR anzeigen . Die Ausgabe sollte also als kommen11.2009
in diesem Fall erfolgen.
Wenn dies der Fall sein soll, versuchen Sie dies (unter anderem)
select [Month.Year] = STUFF(CONVERT(varchar(10), GETDATE(),104),1,3,'')
RIGHT(CONVERT(VARCHAR(10), reg_dte, 105), 7)
Versuche dies:
Portugiesisch
SELECT format(dateadd(month, 0, getdate()), 'MMMM', 'pt-pt') + ' ' + convert(varchar(10),year(getdate()),100)
Ergebnis: maio 2019
Englisch
SELECT format(dateadd(month, 0, getdate()), 'MMMM', 'en-US') + ' ' + convert(varchar(10),year(getdate()),100)
Ergebnis: Mai 2019
Wenn Sie in einer anderen Sprache möchten, ändern Sie " pt-pt " oder " en-US " in einen dieser Links
Ich hatte eine spezielle Anforderung, etwas Ähnliches zu tun, wo es Monat-Jahr anzeigt, was wie folgt getan werden kann:
SELECT DATENAME(month, GETDATE()) + '-' + CAST(YEAR(GETDATE()) AS nvarchar) AS 'Month-Year'
In meinem speziellen Fall musste ich es auf die dreistellige Monatsabkürzung mit einem zweistelligen Jahr reduzieren, die ungefähr so aussah:
SELECT LEFT(DATENAME(month, GETDATE()), 3) + '-' + CAST(RIGHT(YEAR(GETDATE()),2) AS nvarchar(2)) AS 'Month-Year'
Meine Datenbank unterstützt die meisten der oben genannten Funktionen nicht, ich habe jedoch festgestellt, dass dies funktioniert:
SELECT * FROM table WHERE SUBSTR(datetime_column, starting_position, number_of_strings)=required_year_and_month;
beispielsweise:
SELECT SUBSTR(created, 1,7) FROM table;
gibt das Jahr und den Monat im Format "JJJJ-MM" zurück
Holen Sie sich Monat und Jahr vom Datum
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), ' ', '-')
Ausgabe: März 2019
Abfrage: - Select datename(m,GETDATE())+'-'+cast(datepart(yyyy,GETDATE()) as varchar) as FieldName
Ausgabe: - Januar 2019
allgemeines Datumsfeld, das wir verwenden können
datename(m,<DateField>)+' '+cast(datepart(yyyy,<DateField>) as varchar) as FieldName
Für Ergebnis: "JJJJ-MM"
SELECT cast(YEAR(<DateColumn>) as varchar) + '-' + cast(Month(<DateColumn>) as varchar)
select convert(varchar(11), transfer_date, 106)
Ich habe mein gewünschtes Ergebnis des Datums als 07. März 2018 formatiert
Meine Spalte 'transfer_date' ist eine Spalte vom Typ datetime und ich verwende SQL Server 2017 unter Azure
Wählen Sie CONCAT (MONTH (GETDATE ()), '.', YEAR (GETDATE ()).
Ausgabe: 5.2020
Wählen Sie CONCAT (DATENAME (MONTH, GETDATE ()), '.', YEAR (GETDATE ()).
Ausgabe: Mai 2020