none
Datentyp Datetime2(0) und Aktuelle Datum RRS feed

  • Frage

  • Hallo

    ich habe eine Access DB mit Microsoft SQL Server Migration Assistant for Access  auf den MSSQL gebracht

    dort wurden meine Datumsfelder in den Datentypen Datetime2(0) konvertiert.

    Hier meine frage - ist das OK so oder sollte ich besser den Datentypen Datetime verwenden oder gar nur Date (es steht nur ein Datum drin)

    Des weiteren hatte ich den Standardwert Date() in meiner DB aus diesem Standardwert Date() ist jetzt ein

    (CONVERT([datetime],CONVERT([varchar],getdate(),(1)),(1)))

    geworden - ist das in mssql so gewollt?

    oder gibt es dort auch so etwas wie Date() oder Date(Now)?

    Danke

    Dienstag, 22. Oktober 2013 17:37

Antworten

  • datetime2 an sich ist besser als datetime, da es effizienter speichert und obendrein genauer ist.

    in Deinem Fall ist date aber, wie Du richtig erkannt hast, noch besser.

    Die Konvertierungs"Funktion" ist in der Tat ziemlich, nun ja.. holprig und redundant.

    hier tut's auch ein einfaches

    CONVERT(date, SYSDATETIME())

    GETDATE() sollte man sowieso langsam mal sein lassen :)


    Andreas Wolter | Microsoft Certified Master SQL Server

    Blog: www.insidesql.org/blogs/andreaswolter
    Web: www.andreas-wolter.com | www.SarpedonQualityLab.com

    • Als Antwort markiert MCDPone Mittwoch, 23. Oktober 2013 05:52
    Dienstag, 22. Oktober 2013 17:42

Alle Antworten

  • datetime2 an sich ist besser als datetime, da es effizienter speichert und obendrein genauer ist.

    in Deinem Fall ist date aber, wie Du richtig erkannt hast, noch besser.

    Die Konvertierungs"Funktion" ist in der Tat ziemlich, nun ja.. holprig und redundant.

    hier tut's auch ein einfaches

    CONVERT(date, SYSDATETIME())

    GETDATE() sollte man sowieso langsam mal sein lassen :)


    Andreas Wolter | Microsoft Certified Master SQL Server

    Blog: www.insidesql.org/blogs/andreaswolter
    Web: www.andreas-wolter.com | www.SarpedonQualityLab.com

    • Als Antwort markiert MCDPone Mittwoch, 23. Oktober 2013 05:52
    Dienstag, 22. Oktober 2013 17:42
  • Was ist denn genau dein Ziel?

    Datetime2 ist "neu" und gibt dir die Zeit bis zur Nanosekunde wieder.

    Weitere Möglichkeiten zur aktuellen Systemzeit wären:

    SELECT CONVERT (time, SYSDATETIME()) ,

    CONVERT (time, SYSDATETIMEOFFSET()) ,

    CONVERT (time, SYSUTCDATETIME()) ,

    CONVERT (time, CURRENT_TIMESTAMP) ,

    CONVERT (time, GETDATE()) ,

    CONVERT (time, GETUTCDATE());

    Für weitere Infos und Beispiele schau bitte ins Technet.

    http://msdn.microsoft.com/de-de/library/ms188383.aspx

    Wenn dir die Antwort weitergeholfen hat makiere Sie bitte "als Antwort"



    Beste Grüsse, M. Heitmann
    MCSA: SQL Server 2012

    Dienstag, 22. Oktober 2013 17:44