AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL GetDate() nur Datumsanteil extrahieren
Thema durchsuchen
Ansicht
Themen-Optionen

SQL GetDate() nur Datumsanteil extrahieren

Ein Thema von Ferber · begonnen am 18. Jan 2006 · letzter Beitrag vom 19. Jan 2006
Antwort Antwort
Seite 1 von 2  1 2      
Ferber

Registriert seit: 9. Mär 2005
Ort: Wien Umgebung
155 Beiträge
 
Delphi 2006 Architect
 
#1

SQL GetDate() nur Datumsanteil extrahieren

  Alt 18. Jan 2006, 20:19
Datenbank: MSDE • Zugriff über: ADO / Access
GetDate() liefert Datum und Zeit.
Ich will aber keinen Zeitanteil sondern nur das Datum.
Hab's mit CAST, CONVERT, DATEPART versucht, nix geht..
Von diesem Link http://sqlzoo.net/howto/source/z.dir...4148/sqlserver hab ich folgendes:
SQL-Code:
SELECT DATEPART(yyyy, GETDATE())*10000
      +DATEPART(mm,GETDATE())*100
      +DATEPART(d, GETDATE())
funzt auch nicht mit Variablen.
set @Datum=GetDate() -> '18.01.06 20:53:00' -> will ich nicht.
Wenn ich die Datei mit Access ansehe soll dort nur '18.01.06' stehen.
Jemand ne Idee

Hab noch herumgebastelt. So geht's:
SQL-Code:
set @aDate = Convert(dateTime,
                       Convert(varchar, day(GetDate())) +'.'+
                       Convert(varchar, Month(GetDate()))+'.'+
                       Convert(varchar, Year(GetDate()))
                     )
Also zuerst das Datum als String basteln, dann in Datum Konvertieren.
Geht das nicht irgendwie einfacher
Otto
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

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

Re: SQL GetDate() nur Datumsanteil extrahieren

  Alt 18. Jan 2006, 20:23
So gehts auch
select cast (cast (getdate() as int) as dateTime)
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Ferber

Registriert seit: 9. Mär 2005
Ort: Wien Umgebung
155 Beiträge
 
Delphi 2006 Architect
 
#3

Re: SQL GetDate() nur Datumsanteil extrahieren

  Alt 18. Jan 2006, 20:31
Ups - das ging aber schnell !

Zitat von alzaimar:
So gehts auch
select cast (cast (getdate() as int) as dateTime)
Da wird Heute der 19. und nicht der 18. draus.
Hab mal dieses versucht:
select cast (cast (getdate() as int)-1 as dateTime) Beim nochmaligen 'ZurückCasten' steht die Zeit auf 12:00.
Könnte das irgendwelche Probleme bereiten ?
Otto
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

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

Re: SQL GetDate() nur Datumsanteil extrahieren

  Alt 18. Jan 2006, 20:43
Mein Name ist Programm:
Ich hab das eben woanders gelesen, ich mach es immer so:
select cast (floor (cast (getdate() as float)) as dateTime) Das "cast (GetDate() as Int)" scheint aufzurunden ...
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Ferber

Registriert seit: 9. Mär 2005
Ort: Wien Umgebung
155 Beiträge
 
Delphi 2006 Architect
 
#5

Re: SQL GetDate() nur Datumsanteil extrahieren

  Alt 18. Jan 2006, 20:52
Zitat von alzaimar:
select cast (floor (cast (getdate() as float)) as dateTime)
Ja super, das ist perfekt
Otto
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#6

Re: SQL GetDate() nur Datumsanteil extrahieren

  Alt 18. Jan 2006, 22:08
Ich habe dazu folgendes Statement:
Convert(datetime,convert(char(10),@Date,120)) das auch wunderbar klappt...

Was von beiden Varianten ist denn schneller ?

PS: Übrigens, da man eine solche Funktion eventuell öfters braucht, hab ich mir das Ganze in eine Funktion geschmissen..

SQL-Code:
CREATE FUNCTION [dbo].[Datum] (@Date datetime)
RETURNS datetime AS
BEGIN
    return Convert(datetime,convert(char(10),@Date,120))
END
Der Aufruf ist dann ganz simpel:
select dbo.Datum(getdate())
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#7

Re: SQL GetDate() nur Datumsanteil extrahieren

  Alt 19. Jan 2006, 02:02
Zitat von Jelly:
Ich habe dazu folgendes Statement:Convert(datetime,convert(char(10),@Date,120)) das auch wunderbar klappt...
Was von beiden Varianten ist denn schneller ?
Ich glaube das hin-und her parsing in einen String und wieder heraus hat nix mehr mit schnell zu tun.
Ich bin ein freiwilliger TSQL-DAU, also kann ich nur in die Runde werfen, ob es in TSQL ein Gegenstück zu oracles trunc gibt?
Robert Giesecke
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
795 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: SQL GetDate() nur Datumsanteil extrahieren

  Alt 19. Jan 2006, 06:55
Ich habe da noch eine Variante:
convert(varchar, GetDate(), 104) 104 steht für Deutsches Format mit vierstelligem Jahr (siehe auch TSQL Online-Hilfe).

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

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

Re: SQL GetDate() nur Datumsanteil extrahieren

  Alt 19. Jan 2006, 07:04
Zitat von Elvis:
... ob es in TSQL ein Gegenstück zu oracles trunc gibt?
floor Statt sich drauf zu verlassen, das der Datumsanteil in den ersten 10 Zeichen steht, kann man auch in irgendein Format konvertieren, das nur das Datum anzeigt, und dann wieder zurück, so z.B.:
select Convert(datetime,convert(char,getdate(),110)) @mikal: Deine Variante liefert ein VarChar, und kein DateTime.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
795 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: SQL GetDate() nur Datumsanteil extrahieren

  Alt 19. Jan 2006, 07:21
@alzaimar: Das ist richtig, aber letzlich stört sich Ferber doch nur an der Darstellung, oder?
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 19:40 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