En DateTime
är en DateTime
är en DateTime
- det "har" inget (strängorienterat) format när det lagras i SQL Server (det lagras som ett 64-bitars långt). Om du skickar in en parameter till en lagrad procedur som en DateTime
redan, du borde må bra! Värdet kommer att lagras av SQL Server utan ändra någon formatering - eftersom den inte har någon formatering kopplad till sig...
Den enda punkten då datumet är representerat i ett givet strängformat är när man tittar på det i SQL Server Management Studio, eller när man konverterar det till ett strängformat i t.ex. din .NET-app.
När du på något sätt behöver skicka in en strängrepresentation till SQL Server (t.ex. för sökning etc.), den som är mest robust och fungerar med alla regional/språkinställning är ISO-8601 datumformat:YYYYMMDD
eller alternativt (om du behöver tidsdelen) YYYY-MM-DDTHH:MM:SS
(där T
i mitten finns en bokstav som skiljer datum- och tidsdelarna åt)