MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > SQL
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 13.07.2019, 18:02   #1
buliwyf
MOF User
MOF User
Standard T-SQL : MSSQL 2016 - CONVERT(datetime, FLOOR(CONVERT(float, GETDATE())))

Hallo,

um bei einer Abfrage das aktuelle Datum mit einzubeziehen kann man ja folgendendes nutzen:

Code:

where DatetimeSpalte = CONVERT(datetime, FLOOR(CONVERT(float, GETDATE())))
vorraussetzung ist ein datumsformat ohne stunden, minuten usw.
zb. 2019-07-13 00:00:00.000. Funktioniert.

Jetzt meine Frage wie formatiere ich das wenn das datum stunden, minuten usw hat ? zb. 2019-07-13 10:07:47.000
Dann greift gedate nicht mehr,...ist ja unwahrscheinlich genau diesen zeitpunkt zu treffen.

auch wenn ich das kriterium datetimespalte mit in den select reinnehme und vorformatiere, zb. CONVERT(char(10),datetimespalte, 104)as datetimespalte
komme ich nicht zum ergebnis.

danke fuer eure Hilfe.

LG Stefan

Geändert von buliwyf (13.07.2019 um 18:13 Uhr).
buliwyf ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.07.2019, 08:19   #2
mdd
Neuer Benutzer
Neuer Benutzer
Standard

Guten Morgen

versuchs mal mit

Code:

where DatetimeSpalte = CAST(GETDATE() as Date)
Da bleibt nur das Datum erhalten.
Gruß MDD
mdd ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.07.2019, 08:26   #3
markusxy
MOF Meister
MOF Meister
Standard

Ich verstehe deine Frage nicht ganz.

GetDate() liefert ja den aktuellen Zeitpunkt inklusive Millisekunden.

Einfache Beispiele:
Millisekunden rausnehmen mit DATEADD Funktion:
DATEADD(MILLISECOND, DATEPART(MILLISECOND,GETDATE()) * -1,GETDATE())

Sekunden und Millisekunden entfernen durch rausrechnen:
SELECT CONVERT(datetime, FLOOR(CONVERT(FLOAT, GETDATE()) * 1440)/1440)

Nur Tag durch convertieren
SELECT CONVERT(DATETIME,CONVERT(DATE, GETDATE()))

Möglichkeiten gibts ohne Ende.

LG Markus
markusxy ist gerade online  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.07.2019, 12:29   #4
mdd
Neuer Benutzer
Neuer Benutzer
Standard

Wobei mir jetzt eine Sache noch auffällt
Wenn ich das richtig verstehe steht in deiner DateTimeSpalte ein x-beliebiger Zeitpunkt womit du keinen Treffer mit dem akutellen Datum hinkriegst.

Daher brauchst du vermutlich folgendes

Code:

where DatetimeSpalte BETWEEN CAST(GETDATE() as Date) AND DATEADD(D,1, CAST(GETDATE() as Date))
So werden alle Daten angezeigt bei denen die DateTimeSpalte einen Wert größer heute 00:00 Uhr und kleiner/gleich morgen 00:00 Uhr ist

Geändert von mdd (15.07.2019 um 12:33 Uhr).
mdd ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.07.2019, 19:18   #5
Josef P.
MOF Guru
MOF Guru
Standard

Hallo!

Zitat:

Jetzt meine Frage wie formatiere ich das wenn das datum stunden, minuten usw hat ? zb. 2019-07-13 10:07:47.000

Ich vermute, du willst so etwas:
Code:

... where DatetimeSpalte >= @Stichtag and DatetimeSpalte < dateadd(d, 1, @Stichtag)
Die Variante mit Between könnte nicht passende Daten liefern, falls es Daten mit einem Werte von exakt dateadd(d, 1, @Stichtag) geben würde, dieser aber dem Tag nach dem Stichtag zuzuordnen sind.

mfg
Josef

Geändert von Josef P. (15.07.2019 um 19:21 Uhr).
Josef P. ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.07.2019, 14:36   #6
buliwyf
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo,

danke fuer die guten Antworten. Ich werde es heute Abend testen und dann berichten.

Danke

LG Stefan
buliwyf ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.07.2019, 16:45   #7
buliwyf
Threadstarter Threadstarter
MOF User
MOF User
Standard

@Josef P. @Stichtag --> ist das eine Ausdruck oder was soll anstelle davon hin ?

Noch ne andere Frage, um das zu testen muesste ich ein paar tage zurueck abgreifen.
zb.
Code:

where DatetimeSpalte = CONVERT(datetime, FLOOR(CONVERT(float, GETDATE()))-1)
fuer ein Tag zurueck...

wo kann ich das hier ?
Code:

where DatetimeSpalte >= @Stichtag and DatetimeSpalte < dateadd(d, 1, @Stichtag)
oder hier?
Code:

where DatetimeSpalte BETWEEN CAST(GETDATE() as Date) AND DATEADD(D,1, CAST(GETDATE() as Date))
LG Stefan
buliwyf ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.07.2019, 16:51   #8
buliwyf
Threadstarter Threadstarter
MOF User
MOF User
Standard

@markusxy

wo baue ich bei diesem select die spalte ein ?
Nur Tag durch convertieren
Code:

SELECT CONVERT(DATETIME,CONVERT(DATE, GETDATE()))
lg Stefan
buliwyf ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 23.07.2019, 08:06   #9
Josef P.
MOF Guru
MOF Guru
Standard

Zitat:

@Stichtag --> ist das eine Ausdruck oder was soll anstelle davon hin ?

Das war ein Platzhalter für den Ausdruck, der die Zeit von Getdate() wegschneidet.
Code:

CONVERT(datetime, FLOOR(CONVERT(float, GETDATE())))
oder
CAST(GETDATE() as Date)
Anm: Du könntest eine eigene Funktion schreiben, die nur den Tag liefert, dann wird der SQL-Text besser lesbar.

mfg
Josef
Josef P. ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:14 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.