Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Abfrage (Jahr in TimeDate Feld abfragen) (https://www.delphipraxis.net/56115-sql-abfrage-jahr-timedate-feld-abfragen.html)

Plague 1. Nov 2005 08:41

Datenbank: MSSQL • Version: 2000 • Zugriff über: ---

SQL Abfrage (Jahr in TimeDate Feld abfragen)
 
Hallo,

ich habe ein kleines Problem.
Die Programmierung und alles funktioniert schon. Ich brauche nur Hilfe beim SQL Code.

Und zwar:
Ich habe in einer Datenbank-Tabelle ein TimeDate Feld. Das sieht gefüllt z.B. so aus: 2005-10-26 09:24:01.000

Ich möchte jetzt gerne in meine WHERE Klausel einsetzen dass alles ausgelesen wird, was z.B. im Jahr 2005 eingetragen wurde.

Dumm gesagt:
SQL-Code:
SELECT * FROM Table WHERE TimeDates erste vier Ziffern = "2005" sind
Geht das?

Gruß
Thomas

Union 1. Nov 2005 08:47

Re: SQL Abfrage (Jahr in TimeDate Feld abfragen)
 
Hallo Plague,

schau Dir mal folgenden Eintrag an [dp]In der MSSQL-Datenbak nach Datum suchen???[/dp]

jensw_2000 1. Nov 2005 10:10

Re: SQL Abfrage (Jahr in TimeDate Feld abfragen)
 
SQL-Code:
SELECT * FROM Table
WHERE DATEPART(YEAR,Datumsfeld)=2005

Schöne Grüße,
Jens
:hi:

alzaimar 1. Nov 2005 10:31

Re: SQL Abfrage (Jahr in TimeDate Feld abfragen)
 
Zitat:

Zitat von jensw_2000
SQL-Code:
SELECT * FROM Table WHERE DATEPART(YEAR,Datumsfeld)=2005
Schöne Grüße,
Jens
:hi:

Funktioniert, hat aber den Nachteil, das die gesamte Tabelle durchsucht werden muss. Für jede Zeile wird das Datumsfeld genommen, der Jahresanteil extrahiert, und mit 2005 verglichen. Das kann dauern, wenn es z.B. Daten ab 1899 in der Datenbank gibt.

Wesentlich 'besser' (also schneller) ist diese Lösung:
SQL-Code:
SELECT * From Table Where Datumsfeld BETWEEN '1.1.2005' and '31.12.2005 23:59:59'


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz