Weblog @ rebex.cz

Weblogy na webu Rebexu
Welcome to Weblog @ rebex.cz Sign in | Help
in Search

Weblog @ Rebex.cz :: Honza Šotola

nepravidelné poznámky .NET vývojáře

SQL Server datetime formát – má víra byla scestná

Dlouhá léta jsem věřil, že pro textový zápis data (nebo data a času) je nejjistější používat ANSI SQL formát:
‘yyyy-mm-dd’ (nebo ‘yyyy-mm-dd hh:mi:ss’).
Není tomu tak – tento formát je poplatný jazykovému nastavení aktuální SQL connection.

Příklad:

image

Žil jsem tedy přes 10 let v bludu. Kajícně jsem si v článku v Books Online dohledal, že jazykově nezávislé formáty data v SQL Serveru jsou například:

  • yyyymmdd’ nebo ‘yyyymmdd hh:mi:ss
    ISO 8601 un-separated
  • ‘yyyy-mm-ddThh:mi:ss’
    ISO 8601 datetime
    (podle Books Online není jazykově nezávislý, ale podle mých pokusů i jiných zdrojů je nezávislý)
  • {d’yyyymmdd’} nebo {ts’yyyymmdd' hh:mi:ss’}
    ODBC formáty

POZN: Nové datové typy SQL Serveru 2008 jsou více jazykově neutrální – pro datový typ Date, DateTime2 nebo DateTimeOffset je jazykově neutrální i můj původně profanovaný formát ‘yyyy-mm-dd’ (nebo ‘yyyy-mm-dd hh:mi:ss’).

Příklady:

image

Další informace jsou moc hezky sepsané a shrnuté v následujícím článku:
http://www.karaszi.com/SQLServer/info_datetime.asp (zejména v kapitole “Date and time formats for input”).

Published 23. května 2011 13:28 by honzas
Filed under:

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

No Comments

Leave a Comment

(required) 
(optional)
(required) 
Submit
Powered by Community Server (Personal Edition), by Telligent Systems