Wie extrahiere ich nur das Jahr aus dem Datum in SQL Server 2008?

Antworten:

118
year(@date)
year(getdate())
year('20120101')

update table
set column = year(date_column)
whre ....

oder wenn Sie es in einer anderen Tabelle brauchen

 update t
   set column = year(t1.date_column)
     from table_source t1
     join table_target t on (join condition)
    where ....
Dumitrescu Bogdan
quelle
Hier möchte ich nicht für aktuelle Datum / Uhrzeit. Ich habe bereits eine Spalte für datetime. Wie kann man eine Abfrage haben, um das zu extrahieren?
Praveen
Das funktioniert; Wie kann ich dieses Jahr in einer anderen Spalte in der Tabelle speichern? Besser eine einzeilige Abfrage.
Praveen
Können Sie bitte den folgenden Fehler erklären: Arithmetischer Überlauffehler beim Konvertieren des Ausdrucks in den Datentyp datetime.
Praveen
Ich denke, Sie versuchen, eine Zeichenfolge auf ein Datum zu übertragen. Der Server kann es nicht in den Datetime-Typ konvertieren, da das Format nicht unterstützt wird.
Dumitrescu Bogdan
16
select year(current_timestamp)

SQLFiddle-Demo

Jürgen d
quelle
12

Sie können die year()Funktion in SQL verwenden, um das Jahr ab dem angegebenen Datum abzurufen.

Syntax:

YEAR ( date )

Weitere Informationen finden Sie hier

heretolearn
quelle
Arithmetischer Überlauffehler beim Konvertieren des Ausdrucks in den Datentyp datetime. Kannst du nicht verstehen was es ist? Das ist der Fehler, den ich bekommen habe?
Praveen
bekam es, es wurde als int zugewiesen.
Praveen
5
year(table_column)

Beispiel:

select * from mytable where year(transaction_day)='2013' 
jkarim
quelle
4

SQL Server-Skript

declare @iDate datetime
set @iDate=GETDATE()

print year(@iDate) -- for Year

print month(@iDate) -- for Month

print day(@iDate) -- for Day
UJS
quelle
1

die Jahresfunktionsdosis wie folgt:

select year(date_column) from table_name

Aa.mbi
quelle
2
Es gibt bereits 6+ Jahre alte Antworten, die dies sagen (mit mehr Details). Stellen Sie bei der Beantwortung alter Fragen sicher, dass Ihre Antwort eine wesentlich andere oder qualitativ bessere Antwort bietet als die vorhandenen Antworten.
Mark Rotteveel
0

DATEPART (JJJJ, Datumsspalte) kann zum Extrahieren des Jahres verwendet werden. Im Allgemeinen wird die DATEPART-Funktion verwendet, um bestimmte Teile eines Datumswerts zu extrahieren.

Vikdor
quelle
0
---Lalmuni Demos---
create table Users
(
userid int,date_of_birth date
)
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
Lalmuni Singh
quelle
0

Einfach benutzen

DATEPART AUSWÄHLEN (JAHR, SomeDateColumn)

Es wird der Teil eines DATETIME-Typs zurückgegeben, der der von Ihnen angegebenen Option entspricht. SO DATEPART (YEAR, GETDATE ()) würde das aktuelle Jahr zurückgeben.

Kann andere Zeitformatierer anstelle von JAHR wie passieren

  • TAG
  • MONAT
  • ZWEITE
  • MILLISECOND
  • ...usw.
Aaron S.
quelle