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 ....

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


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


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' 

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

1

die Jahresfunktionsdosis wie folgt:

select year(date_column) from table_name


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.


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

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.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.