AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Abfrage (Jahr in TimeDate Feld abfragen)
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Abfrage (Jahr in TimeDate Feld abfragen)

Ein Thema von Plague · begonnen am 1. Nov 2005 · letzter Beitrag vom 1. Nov 2005
Antwort Antwort
Plague

Registriert seit: 6. Okt 2003
591 Beiträge
 
#1

SQL Abfrage (Jahr in TimeDate Feld abfragen)

  Alt 1. Nov 2005, 08:41
Datenbank: MSSQL • Version: 2000 • Zugriff über: ---
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:
SELECT * FROM Table WHERE TimeDates erste vier Ziffern = "2005" sind Geht das?

Gruß
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: SQL Abfrage (Jahr in TimeDate Feld abfragen)

  Alt 1. Nov 2005, 08:47
Hallo Plague,

schau Dir mal folgenden Eintrag an [dp]In der MSSQL-Datenbak nach Datum suchen???[/dp]
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#3

Re: SQL Abfrage (Jahr in TimeDate Feld abfragen)

  Alt 1. Nov 2005, 10:10
SQL-Code:
SELECT * FROM Table
WHERE DATEPART(YEAR,Datumsfeld)=2005

Schöne Grüße,
Jens
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: SQL Abfrage (Jahr in TimeDate Feld abfragen)

  Alt 1. Nov 2005, 10:31
Zitat von jensw_2000:
SELECT * FROM Table WHERE DATEPART(YEAR,Datumsfeld)=2005 Schöne Grüße,
Jens
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:
SELECT * From Table Where Datumsfeld BETWEEN '1.1.2005and '31.12.2005 23:59:59'
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz