![]() |
Datenbank: MSDE • Zugriff über: ADO / Access
SQL GetDate() nur Datumsanteil extrahieren
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 ![]()
SQL-Code:
funzt auch nicht mit Variablen.
SELECT DATEPART(yyyy, GETDATE())*10000
+DATEPART(mm,GETDATE())*100 +DATEPART(d, GETDATE()) 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:
Also zuerst das Datum als String basteln, dann in Datum Konvertieren.
set @aDate = Convert(dateTime,
Convert(varchar, day(GetDate())) +'.'+ Convert(varchar, Month(GetDate()))+'.'+ Convert(varchar, Year(GetDate())) ) Geht das nicht irgendwie einfacher :?: |
Re: SQL GetDate() nur Datumsanteil extrahieren
So gehts auch
SQL-Code:
select cast (cast (getdate() as int) as dateTime)
|
Re: SQL GetDate() nur Datumsanteil extrahieren
Ups - das ging aber schnell ! :)
Zitat:
Hab mal dieses versucht:
SQL-Code:
Beim nochmaligen 'ZurückCasten' steht die Zeit auf 12:00.
select cast (cast (getdate() as int)-1 as dateTime)
Könnte das irgendwelche Probleme bereiten ? |
Re: SQL GetDate() nur Datumsanteil extrahieren
Mein Name ist Programm: :mrgreen:
Ich hab das eben woanders gelesen, ich mach es immer so:
SQL-Code:
Das "cast (GetDate() as Int)" scheint aufzurunden ...
select cast (floor (cast (getdate() as float)) as dateTime)
|
Re: SQL GetDate() nur Datumsanteil extrahieren
Zitat:
|
Re: SQL GetDate() nur Datumsanteil extrahieren
Ich habe dazu folgendes Statement:
SQL-Code:
das auch wunderbar klappt...
Convert(datetime,convert(char(10),@Date,120))
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:
Der Aufruf ist dann ganz simpel:
CREATE FUNCTION [dbo].[Datum] (@Date datetime)
RETURNS datetime AS BEGIN return Convert(datetime,convert(char(10),@Date,120)) END
SQL-Code:
select dbo.Datum(getdate())
|
Re: SQL GetDate() nur Datumsanteil extrahieren
Zitat:
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? :duck: |
Re: SQL GetDate() nur Datumsanteil extrahieren
Ich habe da noch eine Variante:
SQL-Code:
104 steht für Deutsches Format mit vierstelligem Jahr (siehe auch TSQL Online-Hilfe).
convert(varchar, GetDate(), 104)
Grüße Mikhal |
Re: SQL GetDate() nur Datumsanteil extrahieren
Zitat:
SQL-Code:
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.:
floor
SQL-Code:
@mikal: Deine Variante liefert ein VarChar, und kein DateTime.
select Convert(datetime,convert(char,getdate(),110))
|
Re: SQL GetDate() nur Datumsanteil extrahieren
@alzaimar: Das ist richtig, aber letzlich stört sich Ferber doch nur an der Darstellung, oder?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:20 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-2025 by Thomas Breitkreuz