Benutzer mit den meisten Antworten
datetime mit exakten Milisekunden

Frage
-
Hallo an alle,
gibt es irgendwie eine Möglichkeit ohne Datepart oder komplizierten zerlegen (bekomme es leider nicht hin) ein Datetime mit exakten 000 (Millisekunden) zu erstellen.
Beispiel
was mach ich falsch oder geht es auch einfacher??convert(datetime, ('31.'+str(month(getdate()))+'.'+str(YEAR(getdate())+' '
+ str(datepart(hh,getdate()))+'.'+ str(datepart(n,getdate())) +'.'
+str(datepart(ss,getdate()))+ str('.000') ) ),113) as test
Antworten
-
Und ohne die Konvertierungen geht es auch:
Select dateadd(MS, -datepart(MS, getdate()), getdate());
Einen schönen Tag noch,
Christoph
--
Microsoft SQL Server MVP - http://www.insidesql.org/blogs/cmu- Als Antwort vorgeschlagen Christoph MuthmannEditor Dienstag, 14. Juli 2015 13:25
- Als Antwort markiert Teodora MilushevaModerator Freitag, 11. März 2016 13:22
Alle Antworten
-
Hi toot,
wie sieht es hiermit aus?
Get-Date -Format HH:mm:ss.fff
Gruß
Ben
MCSA Windows 8 (.1) MCSA Windows Server 2012 (R2)
Wenn Dir meine Antwort hilft, markiere sie bitte entsprechend als Antwort! Danke! :-)
Hinweis: Meine Posts werden "wie besehen" ohne jedwede Gewähr bereitgestellt, da menschliche, technische und andere Fehler nicht ausgeschlossen werden können. -
Jetzt verstehe ich Dich nicht - Du wolltest doch eine Zeitangabe unter Einbeziehung der Millisekunden mit 3 Stellen?
Der obige Befehl gibt z.B. jetzt gerade folgendes aus:
11:24:03.747
Oder wolltest Du etwas anderes?
Gruß
Ben
MCSA Windows 8 (.1) MCSA Windows Server 2012 (R2)
Wenn Dir meine Antwort hilft, markiere sie bitte entsprechend als Antwort! Danke! :-)
Hinweis: Meine Posts werden "wie besehen" ohne jedwede Gewähr bereitgestellt, da menschliche, technische und andere Fehler nicht ausgeschlossen werden können. -
jetzt hab ich es!
Getdate mit 000 Millisekunden eine Minute früher: dateadd(minute,-1, CONVERT(datetime, (STR(day(getdate()))+'.'+ str(month(getdate()))+'.'+str(YEAR(getdate())) + str(datepart(hh,getdate()))+':'+str(datepart(n,getdate()))+':'+str(datepart(ss,getdate()))+'.000'),104)) as a2
so nun die Frage geht das auch leichter???? bzw, kürzer? einfacher? -
Es soll also nur der Millisekunden Anteil vom aktuellem Datum + Uhrzeit abgeschnitten werden? Konvertiere das Datum in ein festes String Format wie ODBC, kürze den String auf die Länge ohne Millisekunden und konvertiere wieder ins DateTime:
SELECT CONVERT(datetime, CONVERT(varchar(19), GETDATE(), 120), 120);
Olaf Helper
[ Blog] [ Xing] [ MVP] -
Und ohne die Konvertierungen geht es auch:
Select dateadd(MS, -datepart(MS, getdate()), getdate());
Einen schönen Tag noch,
Christoph
--
Microsoft SQL Server MVP - http://www.insidesql.org/blogs/cmu- Als Antwort vorgeschlagen Christoph MuthmannEditor Dienstag, 14. Juli 2015 13:25
- Als Antwort markiert Teodora MilushevaModerator Freitag, 11. März 2016 13:22
-
Hallo,
Vielleicht hilft dies:
Count in VARCHAR nach Bedarf anpassen und die 121 (Format) nach bedarf hier Wählen. (Column1:DATETIME)
SELECT CONVERT(VARCHAR(23), [Column1], 121) as DateAsString FROM [Table]
------------------------------------
RESULT: 2015-07-08 14:25:12.345SELECT CONVERT(VARCHAR(23),[Column1],102) + ' ' + CONVERT(VARCHAR(23),[Column1],114) as DateAsString
------------------------------------
Result: 2015.07.08 14:25:12.345Fehlende Informationen werden mit 0en aufgefüllt (je nach gewähltem Format)
MFG Benutzer0000
- Bearbeitet Benutzer0000 Mittwoch, 8. Juli 2015 12:53
-
Seit SQL-Server 2012 kannst du auch mit FORMAT (https://msdn.microsoft.com/de-de/library/hh213505(v=sql.120).aspx) arbeiten.
SELECT FORMAT(GETDATE(), 'dd.MM.yyyy hh:mm:ss:fff')
Du kannst deinen Format-String nach belieben zusammensetzen. Zum Beispiel auch:
SELECT FORMAT(GETDATE(), 'fff')
Wenn du nur die Milli-Sekunden haben willst.
VG JSX