sql >> Databáze >  >> RDS >> Sqlserver

Která nastavení poskytují výchozí formát data a času serveru SQL Server?

Nedělejte to! Nepoužívejte řetězce místo dat a nepoužívejte formát data nebo data a času specifický pro kulturu, je to recept na katastrofu.

SQL Server nemá "formát data", pouze formáty, které používá k převodu dat do az řetězců. Jeden z nich je výchozí, ovládaný řazením serveru. Nemůžete ani předpokládat, ani byste neměli být závislí na konkrétním řazení, takže byste se měli vyhnout konverzím, kdykoli je to možné. Kromě toho předání řetězcové hodnoty může zabránit SQL Serveru v používání indexů ve sloupcích data, protože by musel řetězec převést na základní typ sloupce.

Je mnohem jednodušší a bezpečnější předávat data jako proměnné nebo parametry typu datum. Tímto způsobem se vyhnete celému nepořádku s konverzemi, do az a vyhnete se útokům SQL injection.

Není důvod předávat serveru řetězce místo dat. Všichni klienti SQL Server (včetně ADO.NET) umožňují spouštět parametrizované dotazy. ORM jako NHibernate a Entity Framework také generují parametrizované dotazy pro sloupce s datem.

Kdykoli potřebujete vytvořit řetězcový literál, použijte jeden z invariantních formátů, jako je 20140913 nebo 2012-11-07T18:26:20

Více si o tom můžete přečíst na stránce Writing International T-SQL Statements



  1. Jak získat údaje o prodeji za poslední 3 měsíce v MySQL

  2. pivot/unpivot tables mysql

  3. MySQL C++ Connector získává řetězec s dotazem SELECT

  4. Aktualizujte více řádků v jednom dotazu MySQL